bigbrush/yii2-big CMF for Yii 2

cmf

Big Framework for Yii 2

Yii2

Big Framework for Yii 2 offers functionality used in common Yii 2 applications. This includes a file manager based on elFinder, an editor based on TinyMCE 4 and a dynamic menu system with multiple menus, nested menu items and SEO optimized content. Finally it offers a nested set category system that can be integrated (quite easily) into Yii 2 modules.

Big is an integrated development kit that provides SEO optimized content. It does so by the following features:

  • Dynamically loaded module url rules. If the file UrlRule.php is placed in the same namespace as the main module file (often Module.php) this url rule will be loaded automatically when Big creates and parses urls. The url rule it self is just a regular Yii 2 url rule.
  • Integrated editor, file manager and menu system
  • Open search system (Yii 2 event based) that modules can hook into. This can be done through the application configuration file or from a module (i.e. during bootstrapping).

Big also provides dynamic functionality to Yii 2 themes by the concept of Blocks. Within a theme (a layout file) include statements can be added. An include statement defines a position, within a layout, where one or more blocks will be dynamically loaded. Creating a block is just like creating a regular Yii 2 widget with the need of one extra method needed to enable administration of blocks.

Big Framework is a development kit (and therefore doesn't come with an UI). You can check out its implementation at BIG CMS where it is used as a development kit.

Installing via Composer

The preferred way to install this extension is through composer. If you do not already have Composer installed, you may do so by following the instructions at Yii Docs.

With Composer installed, you can install Big Cms like so:

Either run

$ composer require "bigbrush/yii2-big=~1.0"

or add

"bigbrush/yii2-big": "~1.0"

to the require section of your composer.json file.

Why is Big so small?

The concept behind Big is to provide a toolset for common Yii 2 applications that can be integrated into any application. Big provides its features without restrictions or rules for extending certain classes. Big provides the following features:

  • Menu system
  • Templates
  • Block system
  • Editor
  • File manager
  • Pluggable search system
  • SEO optimized content
  • Extension system
  • Category system
  • Url manager (integrated as an url rule that can be disabled)
  • Nested set menus and categories

Most features are provided through different managers accessible through Big.

Managers

  • Block manager responsible for loading, creating and registering blocks.
  • Category manager responsible for nested set categories that can be integrated in to modules
  • Menu manager responsible for the nested set menu system
  • Url manager responsible for the SEO optimized url system
  • Extension manager used to install custom blocks
  • Template manager repsonsible for registering blocks to positions

Widgets

Big comes with 5 different widgets:

  • Editor based on TinyMCE 4
  • File manager based on elFinder 2.1. (integrated with the editor widget)
  • Search widget which can be plugged into to integrate your own modules. (integrated with the editor widget)
  • Template editor used to create templates based a layout file. This can be included in your own modules. (integrated with the editor widget)
  • Recorder used to dynamically add blocks with code

Other tools

Template

  • Create multiple templates that can be applied to modules.
  • Can be integrated into existing modules

Parser

  • Responsible for parsing Yii 2 layout files
  • Creates SEO optimized content created with the editor

Built with

Big is built with help from the following libraries:

TODO

  • Create flexible action classes (and views?) so Big is easier to integrate. Some managers (menu manager) are quite complex to integrate.
  • How to install
  • How to add positions to a layout file
  • How to create blocks
  • How to plug into the search system
  • How to create module URL rules
  • How to use the widgets

Changelog

Big Framework Change log

1.2.10 November 13, 2020

  • Enh: Updated elFinder to version 2.1.57

1.2.9 October 5, 2019

  • Enh: Better handling of external links

1.2.8 June 24, 2019

  • Enh: Support of PHP 7.2
  • Enh: TinyMCE limited to version 4.9 because version 5 breaks backwards compatibility

1.2.7 November 22, 2018

  • Enh: FileManager widget made more flexible (now able to get the elfinder client options through the widget).

1.2.6 November 22, 2018

  • Enh: Menu model complies with MySql strict mode by setting default values to meta_title, meta_description and meta_keywords.

1.2.5 March 20, 2017

  • Enh: Menu model complies with MySql strict mode by setting default values to meta_title, meta_description and meta_keywords.

1.2.4 March 20, 2017

  • Bug #46: Menu model assigns a default value (empty string) to params field.

1.2.3 October 15, 2016

  • Enh #39: elFinder updated to version 2.1.16

1.2.2 October 15, 2016

  • Bug #31: Big will only set the application default route when [[yii\web\Request::pathInfo]] is en empty string.
  • Bug: ConfigManagerObject::set now uses the correct method in ConfigManager when setting a property (incorrectly used 'add' instead of 'set' before).

1.2.1 April 04, 2016

  • Bug #30: Fixes json decoding/encoding correctly in MenuManager and Menu model when params column is empty.

1.2.0 March 02, 2016

  • Enh: Translations implemented properly
  • Enh: 'Slug' of Category model is now unique
  • Enh: Nested menus ready for yii\widgets\Menu can now be created with MenuManager
  • Enh: TemplateManager will always use a template even if a requested template is deleted (an empty template is used)
  • Upd: ApiDocs updated across Big
  • New: ConfigManager added
  • New: PluginManager added
  • Enh: Category model now implements templates
  • Enh: A lot of fixes and improvements
  • Enh: Inactive menu items now throws an NotFoundHttpException when requested.

1.1.0 January 24, 2016

  • Enh: BigSearch widget: Search result GridViews are now updated with ajax so the whole page doesn't reload
  • Upd: FileManager - Elfinder updated to v2.1.6 (from 2.0 rc1)
  • Enh #26: A Yii 2 layout can be selected when creating/editing templates
  • Enh #22: TemplateEditor now renders block positions correctly
  • Enh #25: Removed unnecessary use statement from BlockManager

1.0.1 November 25, 2015

  • Manager object properties can now be changed (was read-only before)

1.0.0 September 17, 2015

  • Production ready release

0.1.0 June 03, 2015

  • New: Added extension manager
  • New: removed "scope" from Big
  • Enh: Block manager rewritten to use the extension manager
  • Enh: Block refactored to be more flexible
  • Enh: Further encapsulation of Big Framework

0.0.7 May 31, 2015

  • New: Added template manager
  • Enh: updated migrations

0.0.6 May 14, 2015

  • New: Added category manager
  • New: Added NestedSetAction
  • Enh: Handling of theme positions rewritten to include the file "positions.php"
  • Enh: Added ability to check for active position
  • Enh: Added ability to delete various content
  • Enh: Internal URL parsing optimized
  • Enh: SEO updates
  • All modules removed to offer a integrated development package without any request handling

0.0.4 May 11, 2015

  • Initial release

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



1.2.10 is the latest of 14 releases



BSD-3-Clause license
Stats
16 github stars & 8 github forks
0 downloads in the last day
0 downloads in the last 30 days
568 total downloads