Warning: Chief is still under heavy development and is undergoing constant changes and should therefore not be used for production purposes.
A Blog engine for the Laravel environment. Chief provides a nice management tool for the client and a clean API for the developer to work with.
No assumptions are made for the blogging implementation on the site. This as a break from other cms philosophies where the site had to be build upon the tool itself. Chief merely acts as a module and can be added any given moment during the development stage. The developer should design his blog pages with the use of the Chief API as a storage intermediate.
Currently, the Chief package is designed to run inside a Laravel environment. For now, there is no intension to build support for other environments.
Add following line to the required packages list in your composer.json.
"require": {
"bencavens/chief":"dev-master"
}
Run composer update
from the command line to download the package.
Add 'Bencavens\Chief\ChiefServiceProvider'
as a new service provider to your providers array inside the config/app.php.
Create the Chief alias 'Chief' => 'Bencavens\Chief\ChiefFacade'
in the config/app.php as well.
php artisan config:publish bencavens/chief
and
php artisan asset:publish bencavens/chief
Note: Chief posts makes use of the great redactor wysiwyg editor and handle image uploads behind the scenes mostly without any hassle.
Should your image inserts fail, be sure to verify that the public/packages/bencavens/chief/assets
path exists and is writable.
When updating Chief, it is possible you have to clear your storage/views folder since this is still being fetched from even when a newer view is present. Need to look into that Laravel storage engine.
For optimal usage, make sure your mail environment is up and running. Chief will use your default mail settings for its user interaction, like password resetting and the likes.
The necessary tables will be added to your default selected database (config/database.php > default).
The tables are all prefixed with 'chief' to avoid any collisions.
php artisan migrate --package="bencavens/chief"
php artisan db:seed --class="ChiefSeeder"
for the default admin (admin@admin.com - password: chief)
Your environment should be set to anything but production for seeding to be allowed.
That's it! You seem good to go now.
- core classes: basemodel and baserepository
- documentation
- around API
- example snippets for frontend: blog overview, post detail page, comment form, comment insertion and validation
- post
- filter and sorting options for posts, comments and user indexes
- versioning for postrecords
- thumbnail addition for post: allow to choose an image as the post thumbnail for use in post overviews
- provide easy spamfilter options (e.g. Akismet) for comment insertions via API.
- default status for comment is approved unless our spamfilter detects something is fishy, it will be set to pending
- user
- unify auth user with user entity. Now there are two different entities: SentryUser and User which can be confusing
- set default random password on creation of new user: admin recieves this password once after creation
- allow for sending mail to user with login details
- avatar
- allow for user to change his password (via reset password)
- user roles and permissions: admin, manager, chief, writer, co-writer and guest
- dashboard for each user with his drafts and latest changed posts
- how to set author for a deleted user? -> set static userdetails for author or softdelete user?
- validation for unique email and slug
- lovely
- chief logo
- install script (handle separate), needs to be removed after installment
- admin settings page for general options (behind admin auth filter) like language, backup, API key??
- chief::elements() - mysterious no?!