ozankurt / modules-blog
Ready to use blog module for laravel.
Installs: 84
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 0
Forks: 0
Open Issues: 1
pkg:composer/ozankurt/modules-blog
Requires
- cviebrock/eloquent-sluggable: ^4.2|^5.0|^6.0|^7.0
- graham-campbell/markdown: ^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0
- ozankurt/modules-core: ^0.4
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2025-10-15 10:33:58 UTC
README
I tried to extract a simple, reusable blog module to use on my projects. I used two external packages in total. For keeping the URL pretty on every possible page, I added Eloquent Sluggable and for displaying the content of a post I decided to use Laravel Markdown. This can of course be overwritten.
The module includes the following models and each model has a default observer:
PS: Observers are currently not customizable. :(
Category
| Methods | Description |
|---|---|
| posts() | Posts of the category. (hasMany) |
| postsCount() | Posts count of the category. (hasOne) |
| latestPost() | Latest post of the category. (hasOne) |
| scopePopular($descending = true) | Order the categories accoring to their popularities. (scope) |
Tag
| Methods | Description |
|---|---|
| posts() | Posts of the tag. (belongsToMany) |
| postsCount() | Posts count of the tag. (hasOne) |
| latestPost() | Latest post of the tag. |
Post
Posts have a media type attribute so that the users can choose between a Text Post, Single Image Post, Multiple Image Post or Video Post. Videos support 3 different websites: YouTube, Vimeo, DailyMotion
| Methods | Description |
|---|---|
| category() | Category of the post. (belongsTo) |
| user() | User of the post. (belongsTo) |
| comments() | Comments of the post. (hasMany) |
| commentsCount() | Comments count of the post. (hasOne) |
| latestComment() | Latest comment of the post. |
| tags() | Tags of the post. (belongsToMany) |
| tagsCount() | Tag count of the post. (hasOne) |
| scopePopular($descending = true) | Order the categories accoring to their popularities. (scope) |
| scopeInCategory($categoryId = true) | Filter the posts to a category. (scope)* |
| scopeWithTags($tagIds = [], $and = false) | Filter the posts by their tags. (scope)* |
PS: * This should be able to receive multiple ids sometime.
Comment
| Methods | Description |
|---|---|
| post() | Post of the comment. (belongsTo) |
| user() | User of the comment. (belongsTo) |
| isApproved() | Check the approval state of the comment. |
| approve($state = true) | Update the appvoval of the comment. |
| disapprove() | Update the appvoval of the comment. |
Contribution guidelines
Todo: Add contribution guidelines.
Who do I talk to?
Owner:
- Ozan Kurt (ozankurt2@gmail.com)