{"id":29771443,"url":"https://github.com/shehani-mal/blog_manager_drupal-10-11_custom_module","last_synced_at":"2026-05-08T09:35:28.403Z","repository":{"id":306211167,"uuid":"1025385169","full_name":"shehani-mal/Blog_Manager_Drupal-10-11_Custom_Module","owner":"shehani-mal","description":"Custom Drupal 10/11 module for managing blog posts with editorial workflow, user roles, YAML configs, PHP code, and config sync files.","archived":false,"fork":false,"pushed_at":"2025-07-24T07:16:17.000Z","size":887,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-24T11:16:45.474Z","etag":null,"topics":["custom-module","drupal","drupal10","drupal11","php","yml"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shehani-mal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-07-24T07:14:06.000Z","updated_at":"2025-07-24T07:18:15.000Z","dependencies_parsed_at":"2025-07-24T11:16:56.997Z","dependency_job_id":"42bf0a30-3db0-4f72-ba7d-389f6e0136e5","html_url":"https://github.com/shehani-mal/Blog_Manager_Drupal-10-11_Custom_Module","commit_stats":null,"previous_names":["shehani-mal/blog_manager_drupal-10-11_custom_module"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/shehani-mal/Blog_Manager_Drupal-10-11_Custom_Module","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shehani-mal%2FBlog_Manager_Drupal-10-11_Custom_Module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shehani-mal%2FBlog_Manager_Drupal-10-11_Custom_Module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shehani-mal%2FBlog_Manager_Drupal-10-11_Custom_Module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shehani-mal%2FBlog_Manager_Drupal-10-11_Custom_Module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shehani-mal","download_url":"https://codeload.github.com/shehani-mal/Blog_Manager_Drupal-10-11_Custom_Module/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shehani-mal%2FBlog_Manager_Drupal-10-11_Custom_Module/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267313481,"owners_count":24067795,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["custom-module","drupal","drupal10","drupal11","php","yml"],"created_at":"2025-07-27T06:15:48.403Z","updated_at":"2026-05-08T09:35:28.365Z","avatar_url":"https://github.com/shehani-mal.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blog Manager – Custom Drupal Blog Module\n\n**Blog Manager** is a fully functional Drupal custom module that extends the default blog features provided by Drupal 9 and 10 core. While Drupal core includes a basic Blog content type, this module provides enhanced functionality tailored for real-world editorial workflows.\n\n## 🆚 How This Module Enhances the Core Blog\n\nDrupal 9 and 10 include the \"Blog\" content type in the standard installation profile, but it is limited in scope. Blog Manager upgrades this by introducing:\n\n- **Custom editorial workflow statuses**: Draft, Ready to Publish, Published, Rejected, Archived\n- **Role-based editorial access and permissions**\n- **Advanced content scheduling with publish-to dates**\n- **File upload restrictions and rich text editing**\n- **User management tools for site administrators**\n- **Out-of-the-box Views integration for content listings**\n\n## 🎯 Key Features\n\n- Blog content type with:\n  - Title\n  - Banner Image (JPG, PNG, GIF under 5MB)\n  - Rich Text Content\n  - Post Status (selectable: Draft, Ready to Publish, Published, Rejected, Archived)\n\n- **User Roles**:\n  - **Admin**:\n    - Approve / Reject / Archive blog posts\n    - Set Publish To Date\n    - Manage editor accounts (create or suspend)\n    - View all blog posts from all users\n  - **Editor**:\n    - Create, edit, and preview blog posts\n    - Mark posts as \"Ready to Publish\"\n    - View only their own blog posts\n\n- **Views**:\n  - All blog posts (admin)\n  - Blog posts by author (editor)\n  - Blog editor user listing\n\n- **Custom Forms**:\n  - Create Editor Account\n  - Suspend or Reactivate Editor Accounts\n\n- **Configuration-based Installation**:\n  - Automatically sets up:\n    - Content type with fields\n    - Views\n    - User roles and permissions\n\n## ✅ Installation Instructions\n\n1. Place the `blog_manager` module in the `modules/custom/` directory of your Drupal project.\n\n2. Enable the module via the UI or using Drush:\n   ```bash\n   drush en blog_manager\n\n## 📸 Screenshots\n\n### 1. Editor Login – Dashboard\nWhen a user with the **Editor** role logs in, they see a simplified dashboard with access to manage their own blog posts.\n\n![Editor Login](screenshots/blog.png)\n\n---\n\n### 2. Editor – Create Blog Post Form  \nEditors can create new blog posts using a structured form with a title, banner image, rich text content, and post status.\n\n![Editor Create Blog](screenshots/blog-2.png)\n\n---\n\n### 3. Editor – My Blog Posts Table  \nEditors can view, edit, and track the status of their own blog posts in a personal list view.\n\n![Editor Posts Table](screenshots/blog-3.png)\n\n---\n\n### 4. Admin – Blog Editors Table  \nAdmins can manage blog editors by activating, suspending, or modifying their status through a custom interface.\n\n![Admin Users](screenshots/blog-4.png)\n\n---\n\n### 5. Admin – All Blog Posts  \nAdmins see a table of all posts submitted by editors and can approve, reject, or archive them.\n\n![Admin Blog Posts](screenshots/blog-5.png)\n\n---\n\n### 6. Admin – Role and Permission Setup  \nOn installation, the module creates and configures roles for **Editor** and **Admin**, assigning appropriate permissions.\n\n![Permissions](screenshots/blog-6.png)\n\n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshehani-mal%2Fblog_manager_drupal-10-11_custom_module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshehani-mal%2Fblog_manager_drupal-10-11_custom_module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshehani-mal%2Fblog_manager_drupal-10-11_custom_module/lists"}