{"id":14974680,"url":"https://github.com/binshops/laravel-blog","last_synced_at":"2025-05-15T14:04:08.603Z","repository":{"id":41479979,"uuid":"256260147","full_name":"binshops/laravel-blog","owner":"binshops","description":"Laravel Blog Package/ Laravel CMS. Easiest way to add a blogging system to your Laravel website. Laravel Blog. ","archived":false,"fork":false,"pushed_at":"2024-09-23T11:23:32.000Z","size":461,"stargazers_count":452,"open_issues_count":24,"forks_count":138,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-04T08:44:04.117Z","etag":null,"topics":["admin","blog","cms","laravel","laravel-application","laravel-cms","laravel-framework","laravel-package","laravel-wordpress","laravel10","laravel7","laravel8x","laravel9","laravelcms","publishing"],"latest_commit_sha":null,"homepage":"https://www.binshops.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/binshops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-16T15:47:55.000Z","updated_at":"2025-03-31T10:49:54.000Z","dependencies_parsed_at":"2024-01-07T12:26:50.024Z","dependency_job_id":"1805da32-f039-41a5-865d-42e6abd356df","html_url":"https://github.com/binshops/laravel-blog","commit_stats":{"total_commits":196,"total_committers":14,"mean_commits":14.0,"dds":0.25,"last_synced_commit":"fe68d5a02ab3067ade21cb4620615bac9e5f255f"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binshops%2Flaravel-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binshops%2Flaravel-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binshops%2Flaravel-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binshops%2Flaravel-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binshops","download_url":"https://codeload.github.com/binshops/laravel-blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248477995,"owners_count":21110613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","blog","cms","laravel","laravel-application","laravel-cms","laravel-framework","laravel-package","laravel-wordpress","laravel10","laravel7","laravel8x","laravel9","laravelcms","publishing"],"created_at":"2024-09-24T13:50:54.974Z","updated_at":"2025-05-15T14:04:08.587Z","avatar_url":"https://github.com/binshops.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":" \u003ch1 align=\"center\"\u003eLaravel Blog Package\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/20775532/215362765-c2a3360e-c165-4cba-809b-4f04316c8d5e.png\" width=\"80%\" /\u003e\n\u003c/p\u003e\n\n### Lightweight and Easy to Install\n\nIncredible features with a lightweight laravel blog package.\n- Quick installation (\u003c3 minutes)\n- It's very easy to extend\n- Included great features out-of-box\n- Its simplicity allows to be easily made compatible with latest laravel\n- No additional concept except laravel knowledge\n- Fulltext Search - search throughout all blog posts\n- Multi Level Category - nested sets using Baum\n\n### Quick and easy installation (Multi-lang version)\n1- Install via composer\n\n`composer require binshops/laravel-blog`\n\nFor a fresh Laravel installation run the following too:\n\n```\ncomposer require laravel/ui\nphp artisan ui bootstrap --auth\n```\n\n2- Scaffold\n\n```\nnpm install \u0026\u0026 npm run build\n```\n\n3- Run the following two commands to copy config file, migration files, and view files\n\n`php artisan vendor:publish --provider=\"BinshopsBlog\\BinshopsBlogServiceProvider\"`\n\n`php artisan vendor:publish --tag=laravel-fulltext`\n\n\n4- Execute migrations to create tables\n\n`php artisan migrate;`\n\n5- You must add one method to your \\App\\User (in laravel 8 \\App\\Models\\User) model. As the name of this method shows it determines which user can manage posts. Place your logic there\n\n```\n /**\n     * Enter your own logic (e.g. if ($this-\u003eid === 1) to\n     *   enable this user to be able to add/edit blog posts\n     *\n     * @return bool - true = they can edit / manage blog posts,\n     *        false = they have no access to the blog admin panel\n     */\n    public function canManageBinshopsBlogPosts()\n    {\n        // Enter the logic needed for your app.\n        // Maybe you can just hardcode in a user id that you\n        //   know is always an admin ID?\n\n        if (       $this-\u003eid === 1\n             \u0026\u0026 $this-\u003eemail === \"your_admin_user@your_site.com\"\n           ){\n\n           // return true so this user CAN edit/post/delete\n           // blog posts (and post any HTML/JS)\n\n           return true;\n        }\n\n        // otherwise return false, so they have no access\n        // to the admin panel (but can still view posts)\n\n        return false;\n    }\n```\n\n6- Create a directory in `public/` named `blog_images`\n\n7- Start the server\n\n```\nphp artisan serve\n```\n\nCongrats! Your blog is ready to use. Now you can log in as admin. (URLs are customizable in the config file)\n\nDefault Admin panel URI: `/blog_admin`\n\nDefault Front URI: `/blog`\n\nTo see package on Packagist click this [Link](https://packagist.org/packages/binshops/laravel-blog)\n\n### Multi Language Version (Old)\nTo install the single language version of the package use version v8.1x:\n\n1- `composer require binshops/laravel-blog:v9.3.6`\n\n2- `php artisan vendor:publish --provider=\"BinshopsBlog\\BinshopsBlogServiceProvider\"`\n\n3- `php artisan migrate;`\n\nYou can see the single version in \"multi-lang\" branch. The major difference with multi-language version is the database structure.\n\n## Features\n- Compatible with latest laravel version (laravel 8.x)\n- Backward-compatibility with previous laravel versions\n- Full text search - searching throughout the blog posts\n- Multi-level category support\n- fully configurable via its `config/binshopsblog.php` config file\n- Ready to use admin panel\n- Full customizability of admin views and front views\n- Paginated views\n- Ability to upload images\n- Managing posts, categories\n- Managing comments and comment approval\n- Other options include using Disqus comments or disabling comments\n\n## Recent Changes\n- **10.x** Latest version\n- 9.1.x Multi language support\n- 8.0.x Compatibility with Laravel 8.x\n\n## What/who this package is for:\n\n- For websites running Laravel\n- Anyone, who wants to have a site blog. This laravel blog gives an easy to use interface to write blog posts/assign categories/manage existing posts\n- Where only admin users can edit/manage the blog (this is not suitable for every user on your site to be able to manage posts)\n- For anyone who likes to add a wordpress-like laravel blog to laravel website\n\n## How to customise the blog views/templates\n\nAfter doing the correct `vendor:publish`, all of the default template files will be found in /resources/views/vendor/binshopsblog/ and are easy to edit to match your needs.\n\n### Customizing admin views\nIf you need to customize the admin view, just copy the files from\n`vendor/binshopsblog/src/Views/binshopsblog_admin`\nto\n`resources/views/vendor/binshopsblog_admin`\nThen you can modify them just like any other view file.\n\n## Routes\n\nIt will auto set all required routes (both public facing, and admin backend). There are some config options (such as changing the /blog/ url to something else), which can be done in the binshopsblog.php file.\n\n## Config options\nAll config options have comments which describe what they do. Please just refer to the `binshopsblog.php` file in your /config/ dir.\n\n### Custom User Model\nYou can change the default user model through the config file.\n\n## Events\n\nYou can find all the events that are fired by looking in the `/src/Events` directory.\n\nAdd these (and an Event Listener) to your `EventServiceProvider.php` file to make use of these events when they fire.\n\n## Built in CAPTCHA / anti spam\n\nThere is a built-in captcha (anti-spam comment) system built in, which will be easy for you to replace with your own implementation.\n\nThere is a basic anti-spam captcha function built-in.\n\nSee the config/binshops.php captcha section. There is a built in system (basic!) that will prevent most automated spam attempts.\nWriting your own captcha system:\n\nI wrote the captcha system simple on purpose, so you can add your own captcha options. It should be easy to add any other captcha system to this.\n\nIf you want to write your own implementation then create your own class that implements \\BinshopsBlog\\Interfaces\\CaptchaInterface, then update the config/binshopsblog.php file (change the captcha_type option).\n\nThere are three methods you need to implement:\npublic function captcha_field_name() : string\n\nReturn a string such as \"captcha\". It is used for the form validation and \u003cinput name=???\u003e.\npublic function view() : string\n\nWhat view file should the binshops::partials.add_comment_form view include? You can set this to whatever you need, and then create your own view file. The default included basic captcha class will return \"binshops::captcha.basic\".\npublic function rules() : array\n\nReturn an array for the rules (which are just the standard Laravel validation rules. This is where you can check if the captcha was successful or not.\nOptional:\npublic function runCaptchaBeforeShowingPosts() : null\n\nThis isn't part of the interface, it isn't required. By default it does nothing. But you can put some code in this method and it'll be run in the BinshopsReaderController::viewSinglePost method.\n\n## Image upload errors\n\nTry adding this to config/app.php:\n\n    'Image' =\u003e Intervention\\Image\\Facades\\Image::class\n\n- Also make sure that /tmp is writable. If you have open_basedir enabled, be sure to add :/tmp to its value.\n- Ensure that /public/blog_images (or whatever directory you set it to in the config) is writable by the server\n- You might need to set a higher memory limit, or upload smaller image files. This will depend on your server. I've used it to upload huge (10mb+) jpg images without problem, once the server was set up correctly to handle larger file uploads.\n\n## Version History\n- **10.x** Stable version - Compatibility with laravel 11, 12\n- 9.3.x Old multi lang\n- 9.0.x Multi-language support beta release\n- 8.0.x Compatibility with Laravel 8\n- 7.3.0 New Admin UI\n- 3.0.1                 - replaced all short tags (\u003c?) with full opening ones (\u003c?php)\n- 2.0                   - added full text search (enable it via the config file - it is disabled by default).\n- 1.1.1                 - added basic captcha\n- 1.0.5                 - composer.json changes.\n- 1.0                   - First release\n- 0.1                   - Initial release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinshops%2Flaravel-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinshops%2Flaravel-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinshops%2Flaravel-blog/lists"}