Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
Awilum committed May 14, 2020
2 parents cfb8e60 + c7f8f47 commit 491c55d
Show file tree
Hide file tree
Showing 271 changed files with 1,966 additions and 25,917 deletions.
10 changes: 7 additions & 3 deletions BACKERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ Flextype is an MIT-licensed open source project and completely free to use..

However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support it's ongoing development by being a backer or a sponsor:

- [Become a backer or sponsor on Patreon](https://www.patreon.com/awilum).
- [One-time donation via PayPal, QIWI, Sberbank, Yandex](http://flextype.org/en/one-time-donation)
- [Visit our Sponsors & Backers page](http://flextype.org/en/sponsors)
* [Become a backer or sponsor on Patreon](https://www.patreon.com/awilum).
* [One-time donation via PayPal, QIWI, Sberbank, Yandex](http://flextype.org/en/one-time-donation)
* [Visit our Sponsors & Backers page](http://flextype.org/en/sponsors)


### Backers
* Arseni Khramenkin
133 changes: 133 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,136 @@
<a name="0.9.8"></a>
# [0.9.8](https://github.com/flextype/flextype/compare/v0.9.7...v0.9.8) (2020-05-14)

### Features
* **core:** New lightweight and powerful core for kickass Applications!
* **core:** New Content Management API (CMA) for Entries. #421

The Content Management API (CMA), is a read-write API for managing content.

You could use the CMA for several use cases, such as:

* Automatic imports from WordPress, Joomla, Drupal, and more.
* Integration with other backend systems, such as an e-commerce shop.
* Building custom editing experiences.

Endpoints for Content Management API:
| Method | Endpoint | Description |
| --- | --- | --- |
| GET | /api/management/entries | Fetch entry(entries) |
| POST | /api/management/entries | Create entry |
| PATCH | /api/management/entries | Update entry |
| PUT | /api/management/entries | Rename entry |
| PUT | /api/management/entries/copy | Copy entry(entries) |
| DELETE | /api/management/entries | Delete entry |

API Tokens folder: /project/tokens/management/entries

* **core:** New Images API.

| Method | Endpoint | Description |
| --- | --- | --- |
| GET | /api/images | Fetch image |

API Tokens folder: /project/tokens/images

* **core:** New Access API to create secret tokens for Content Management API (CMA).

API Tokens folder: /project/tokens/access

* **core:** add Container for extending Flextype Container instead of Controller(s)
* **core:** add Application URL `url` into the common Flextype settings #405
* **core:** add new improved plugins sorting in the Plugins API.
* **core:** add dependencies validation for Plugins API #411
* **core:** add configurable CORS (Cross-origin resource sharing).

```
cors:
enabled: true
origin: "*"
headers: ["X-Requested-With", "Content-Type", "Accept", "Origin", "Authorization"]
methods: [GET, POST, PUT, DELETE, PATCH, OPTIONS]
expose: []
credentials: false
```

* **core:** add manifest file `/src/flextype/config/flextype.yaml` for Flextype.
* **core:** add Serializer for data encoding/decoding and Parser for data parsing #424

### Bug Fixes

* **core:** fix incorrect data merging of manifest and settings for plugins and themes #404

### BREAKING CHANGES

* **core:** core decoupled in the plugins, and moved out of the Flextype release package!

Install all needed plugins for your project by your self.
Browse plugins: https://github.com/flextype-plugins

* **core:** new way for data merging of manifest and settings for plugins and themes #404

for e.g. this is a wrong code to access site title:
```
{{ registry.plugins.site.title|e('html') }}
```

and this is a correct code to access site title:
```
{{ registry.get('plugins.site.settings.title')|e('html') }}
```
* **core:** We should add app `url` into the core instead of `base_url` and `site_url` #405

for e.g. this is a wrong code to access site url:
```
{{ registry.plugins.site.url }}
```

and this is a correct code to access app url:
```
{{ registry.get('flextype.settings.url') }}
```

* **core:** new `project` folder instead of `site`

- rename folder `site` into `project`
- use new constant PATH['project'] instead of constant PATH['site']

* **core:** removed constants

- PATH['plugins']
- PATH['themes']
- PATH['entries']
- PATH['themes']
- PATH['snippets']
- PATH['fieldsets']
- PATH['tokens']
- PATH['accounts']
- PATH['uploads']

* **core:** removed Snippets functionality

### Update from Flextype 0.9.7 to Flextype 0.9.8

1. Backup your Site First!
2. Read BREAKING CHANGES section!
3. Download flextype-0.9.8.zip
4. Unzip the contents to a new folder on your local computer.
5. Remove on your server this folders and files:
```
/flextype/
/vendor/
/index.php
```
6. Upload on your server this folders and files:
```
/src/
/vendor/
/index.php
```
7. Rename `/site/` to `/project/`
8. Clear browser cache!
9. Create CDA, CMA and Access tokens for your project using this [webpage](https://flextype.org/en/api-token-generator).

<a name="0.9.7"></a>
# [0.9.7](https://github.com/flextype/flextype/compare/v0.9.6...v0.9.7) (2020-03-03)

Expand Down
131 changes: 80 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,87 +1,116 @@
![preview](/site/plugins/admin/preview.png)
<h1 align="center">SELF-HOSTED DATA-FIRST HEADLESS CMS & API.</h1>

![preview](https://flextype.org/site/uploads/entries/en/press-kit/flextype-banner-invert.jpg?v1)

<p align="center">
<a href="https://github.com/flextype/flextype/releases"><img alt="Version" src="https://img.shields.io/github/release/flextype/flextype.svg?label=version"></a> <a href="https://github.com/flextype/flextype"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a> <a href="https://github.com/flextype/flextype"><img src="https://img.shields.io/github/downloads/flextype/flextype/total.svg?colorB=blue" alt="Total downloads"></a> <a href="https://crowdin.com/project/flextype"><img src="https://d322cqt584bo4o.cloudfront.net/flextype/localized.svg" alt="Crowdin"></a> <a href="https://scrutinizer-ci.com/g/flextype/flextype?branch=master"><img src="https://img.shields.io/scrutinizer/g/flextype/flextype.svg?branch=master" alt="Quality Score"></a> <a href=""><img src="https://img.shields.io/discord/423097982498635778.svg?logo=discord&colorB=728ADA&label=Discord%20Chat" alt="Discord"></a>
<a href="https://github.com/flextype/flextype/releases"><img alt="Version" src="https://img.shields.io/github/release/flextype/flextype.svg?label=version&color=black"></a> <a href="https://github.com/flextype/flextype"><img src="https://img.shields.io/badge/license-MIT-blue.svg?color=black" alt="License"></a> <a href="https://github.com/flextype/flextype"><img src="https://img.shields.io/github/downloads/flextype/flextype/total.svg?color=black" alt="Total downloads"></a> <a href="https://scrutinizer-ci.com/g/flextype/flextype?branch=master"><img src="https://img.shields.io/scrutinizer/g/flextype/flextype.svg?branch=master&color=black" alt="Quality Score"></a> <a href="https://flextype.org/en/discord"><img src="https://img.shields.io/discord/423097982498635778.svg?logo=discord&color=black&label=Discord%20Chat" alt="Discord"></a>
</p>

<h1 align="center">Supporting Flextype</h1>

Flextype is an MIT-licensed open source project and completely free to use.

However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing. You can support it's ongoing development by being a backer or a sponsor:

- [Become a backer or sponsor on Patreon](https://www.patreon.com/awilum).
- [One-time donation via PayPal, QIWI, Sberbank, Yandex](http://flextype.org/en/one-time-donation)
- [Visit our Sponsors & Backers page](http://flextype.org/en/sponsors)
<br>

## INTRODUCTION

Flextype was **founded in March 2018** as lightweight alternative to other heavy and outdated CMS. Many people use complex solutions for simple pages, unnecessarily. Building this content management system, we focused on simplicity - even novice webmaster adapt his template and writes his own plugin. To achieve this, we implemented a simple but powerful API's.
**Flextype** is an open-source self-hosted **Data-First Headless CMS & API**. It is was **founded in March 2018** as lightweight alternative to other heavy Content Management Systems. Many people use complex solutions for simple projects, unnecessarily. Building this Content Management System, we focused on simplicity - even novice webmaster adapt his template and writes his own plugin. To achieve this, we implemented a simple but powerful API's.

With Flextype, you are in complete control. Design your data structure the way you want. Update and share your data with others and teams using version control. Flextype does not require MySQL database, because all the data are collected in a simple files. Perfect portability when changing your hosting provider. Just copy all the files from one account to another.
With Flextype, you are in complete control. Design your data structure the way you want. Update and share your data with others and teams using version control. Flextype does not require MySQL database, because all the data are collected in a simple files. Perfect portability when changing your hosting provider. Just copy all the files from one server to another.

The underlying architecture of Flextype is built using well established and best-in-class technologies. This is to ensure that Flextype is simple to use and easy to extend. Some of these key technologies include:

* [Slim PHP](http://www.slimframework.com): Framework for powerful web applications and APIs.
* [Twig Templating](https://twig.symfony.com): Flexible, fast, and secure
template engine for PHP.
* [Doctrine Project](https://www.doctrine-project.org): A set of decoupled and reusable PHP libraries for powerful web applications.
* [The PHP League](https://thephpleague.com): The League of Extraordinary PHP Packages well tested and using modern coding standards.
* [Respect Validation](https://respect-validation.readthedocs.io/): The most awesome validation engine ever created for PHP.
* [Thunderer Shortcode](https://github.com/thunderer/Shortcode): Advanced shortcode (BBCode) parser and engine for PHP.
* [Markdown & Parsedown](https://github.com/erusev/parsedown): Easy content creation using Markdown Syntax.
* [YAML](https://yaml.org): Human friendly data serialization format for simple configuration.

## REQUIREMENTS

#### System requirements
#### SYSTEM REQUIREMENTS
Make sure your server meets the following requirements.

- Webserver (Apache with Mod Rewrite)
- PHP 7.2.0 or higher
* Webserver (Apache with Mod Rewrite)
* PHP 7.2.0 or higher

#### PHP extensions
#### PHP EXTENSIONS
Flextype needs the following PHP extensions to be enabled:

- PHP [mbstring](http://php.net/manual/en/book.mbstring.php) module for full UTF-8 support.
- PHP [gd](http://php.net/manual/en/book.image.php) or [ImageMagick](http://php.net/manual/en/book.imagick.php) module for image processing.
- PHP [json](https://php.net/manual/en/book.json.php) module for JSON manipulation.
- PHP [Fileinfo](https://www.php.net/manual/en/book.fileinfo.php)
- PHP [SPL](https://www.php.net/manual/en/book.spl.php)
- PHP [DOM](https://www.php.net/manual/ru/class.domdocument.php)
* PHP [mbstring](http://php.net/manual/en/book.mbstring.php) module for full UTF-8 support.
* PHP [gd](http://php.net/manual/en/book.image.php) or [ImageMagick](http://php.net/manual/en/book.imagick.php) module for image processing.
* PHP [json](https://php.net/manual/en/book.json.php) module for JSON manipulation.
* PHP [Fileinfo](https://www.php.net/manual/en/book.fileinfo.php)
* PHP [SPL](https://www.php.net/manual/en/book.spl.php)
* PHP [DOM](https://www.php.net/manual/ru/class.domdocument.php)

Although it is optional, we strongly recommend enabling the following PHP extensions:
APC, APCu, XCache, Memcached, or Redis for better performance.

#### Browser requirements
The admin panel of Flextype is compatible with:
## QUICK INSTALLATION

Windows and macOS
- Chrome 29 or later
- Firefox 28 or later
- Safari 9.0 or later
- Microsoft Edge
1. [Download the latest version of Flextype](https://flextype.org/en/downloads).
2. Unzip the contents to a new folder on your local computer, and upload to your webhost using the (S)FTP client of your choice. After you’ve done this, create directory <code>/project</code> and be sure to chmod the following directory to <code>755</code> (or <code>777</code>), so it is readable and writable by Flextype.<br>
3. Create CDA, CMA and Access tokens for your project using this [webpage](https://flextype.org/en/api-token-generator).

Mobile
- iOS: Safari 9.1 or later
- Android: Chrome 4.4 or later
[read the documentation](https://github.com/flextype/plugins)

## COMMUNITY
Flextype is open source, community driven project, and maintained by community!

- [Github](https://github.com/flextype)
- [Discord](https://flextype.org/en/discord)
- [Twitter](https://twitter.com/getflextype)
- [Vkontakte](https://vk.com/flextype)

## CONTRIBUTE
Flextype is an open source project and community contributions are essential to its growing and success. Contributing to the Flextype is easy and you can give as little or as much time as you want.

- Help on the [Communities.](http://flextype.org/en/community)
- Develop a new plugin.
- Create a new theme.
- Find and [report issues.](https://github.com/flextype/flextype/issues)
- Link back to [Flextype](http://flextype.org).
- [Donate to keep Flextype free.](http://flextype.org/en/sponsors)
- [Join Flextype International Translator Team](http://flextype.org/en/international-translator-team)
#### [Discord](https://flextype.org/en/discord)

Got a question about setting up or using Flextype? We'll do our best to help you out. Also here you may start discussions about core, plugin and themes development.

#### [Github](https://github.com/flextype)

If you want to report a bug or contribute your ideas, you can use the Flextype GitHub Issues tracker.

#### [Twitter](https://twitter.com/getflextype)

Follow Flextype on Twitter to get real-time news regarding the development and all events we are attending.

#### [Vkontakte](https://vk.com/flextype)

Russian Flextype Community!

## SUPPORTING FLEXTYPE

Flextype is an open source project and community contributions are essential to its growing and success.

Contributing to the Flextype is easy and you can give as little or as much time as you want.

### FINANCIAL SUPPORT

Flextype is an MIT-licensed open source project and completely free to use.

However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing.

You can support it's ongoing development by being a project backer or a sponsor:
* [Become a backer or sponsor on Patreon](https://www.patreon.com/awilum).
* [One-time donation via PayPal, QIWI, Sberbank, Yandex](https://flextype.org/en/one-time-donation)
* [Visit our Sponsors & Backers page](https://flextype.org/en/sponsors)

### PLATFORM CONTRIBUTIONS

Another excellent way to help out is by contributing your time or services.

#### TRANSLATION

We are on a mission to build high quality platform to develop fast, flexible, easier to manage websites with Flextype!

If you wish to participate in the translation of Flextype, please [Join Flextype International Translator Team](https://flextype.org/en/international-translator-team) and start translating!

#### BUG REPORTING

We are using GitHub Issues to manage our public bugs. We keep a close eye on this so before filing a new issue, try to make sure the problem does not already exist.

#### PULL REQUESTS

We actively welcome your pull requests!

If you need help with Git or our workflow, please ask in our community chat. We want your contributions even if you're just learning Git. Our maintainers are happy to help!

#### DOCS

You may help us to create amazing knowledge base for Flextype. Fix spelling, add code examples, help organize, write new articles, and etc...

## LICENSE
[The MIT License (MIT)](https://github.com/flextype/flextype/blob/master/LICENSE.txt)
Expand Down
29 changes: 13 additions & 16 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"name": "flextype/flextype",
"type": "project",
"description": "Build fast, flexible, easier to manage websites with Flextype.",
"keywords": ["flextype", "php", "cms", "flat-file cms", "flat cms", "flatfile cms", "html"],
"homepage": "http://flextype.org",
"description": "Self-hosted Data-First Headless CMS & API",
"keywords": ["flextype", "php", "cms", "flat-file cms", "flat cms", "flatfile cms", "headless", "API", "html"],
"homepage": "https://flextype.org",
"license": "MIT",
"authors": [
{
"name": "Sergey Romanenko",
"email": "hello@romanenko.digital",
"homepage": "http://digital.flextype.org"
"email": "support@flextype.org",
"homepage": "https://flextype.org"
}
],
"support": {
Expand All @@ -18,7 +18,6 @@
"require": {
"php": ">=7.2.0",
"ext-json": "*",
"ext-gd": "*",
"ext-dom": "*",
"ext-spl": "*",
"ext-mbstring": "*",
Expand All @@ -28,7 +27,6 @@
"doctrine/collections": "~1.6.4",

"flextype-components/arr" : "1.2.5",
"flextype-components/assets" : "1.0.3",
"flextype-components/cookie" : "1.2.0",
"flextype-components/date" : "1.1.0",
"flextype-components/filesystem" : "2.0.6",
Expand All @@ -39,27 +37,26 @@
"flextype-components/text" : "1.1.2",

"slim/slim": "~3.12.3",
"slim/twig-view": "~2.5.0",
"slim/flash": "~0.4.0",
"slim/csrf": "~0.8.3",

"zeuxisoo/slim-whoops": "~0.6.5",

"league/glide-slim": "~1.0.0",
"league/event": "~2.2.0",
"league/glide": "~1.5.0",

"respect/validation": "~1.1.31",
"respect/validation": "~2.0.1",
"monolog/monolog": "~2.0.2",
"cocur/slugify": "~4.0.0",
"thunderer/shortcode": "~0.7.3",
"ramsey/uuid": "~3.9.2",
"ramsey/uuid": "~4.0.1",
"symfony/yaml": "~4.4.4",

"bnf/slim3-psr15": "~1.1.1",

"erusev/parsedown": "~1.7.3",
"erusev/parsedown-extra": "~0.7.1",

"bnf/slim3-psr15": "~1.1.1"
"thunderer/shortcode": "~0.7.3",

"composer/semver": "~2.0.0"
},
"suggest": {
"ext-zend-opcache": "Recommended for better performance",
Expand All @@ -76,7 +73,7 @@
},
"autoload": {
"classmap": [
"flextype"
"src"
]
},
"require-dev": {
Expand Down

0 comments on commit 491c55d

Please sign in to comment.