|
| 1 | +```markdown |
| 2 | +# Project Content Structure Documentation |
| 3 | + |
| 4 | +This document outlines the content structure of the Drupal project, focusing on content types, vocabularies, views, user roles, and other key configurations that define how content is created, managed, and displayed. This information is intended to help developers quickly understand and navigate the project's content architecture. |
| 5 | + |
| 6 | +## Content Types |
| 7 | + |
| 8 | +Content types define the structure and fields for different kinds of content within the application. |
| 9 | + |
| 10 | +* **Code Contribution:** Used to capture various code contributions, such as patches or modules. |
| 11 | + |
| 12 | + * **Fields:** |
| 13 | + * `field_code_contrib_project`: Project association (Taxonomy: Project). |
| 14 | + * `field_contribution_technology`: Technology used (Taxonomy: Technology). |
| 15 | + * `field_code_contrib_issue_link`: Link to the related issue. |
| 16 | + * `field_code_contrib_patches_count`: Number of patches included in the contribution. |
| 17 | + * `field_code_contrib_files_count`: Number of files included in the contribution. |
| 18 | + * **Configuration File:** `/config/sync/node.type.code_contribution.yml` |
| 19 | + |
| 20 | +* **Non Code Contribution:** Used to capture contributions that do not involve coding. |
| 21 | + |
| 22 | + * **Fields:** |
| 23 | + * `field_non_code_contribution_type`: Type of contribution (Taxonomy: Contribution Type). |
| 24 | + * `field_non_code_contrib_profile`: Profile of the contributor. |
| 25 | + * `field_non_code_contrib_credit`: Credit given for the contribution. |
| 26 | + * **Configuration File:** `/config/sync/node.type.non_code_contribution.yml` |
| 27 | + |
| 28 | +* **Issue:** Used for creating new issues, bugs, tasks, or feature requests, and linking them to code contributions. |
| 29 | + |
| 30 | + * **Fields:** |
| 31 | + * `field_issue_link`: Link to the related issue. |
| 32 | + * **Configuration File:** `/config/sync/node.type.issue.yml` |
| 33 | + |
| 34 | +* **Event Contribution:** Used for capturing contributions made during events. |
| 35 | + |
| 36 | + * **Fields:** |
| 37 | + * `field_event_contribution_type`: Type of event contribution (Taxonomy: Event Contribution Type). |
| 38 | + * `field_event_contribution_link`: Link to the related event. |
| 39 | + * **Configuration File:** `/config/sync/node.type.event_contribution.yml` |
| 40 | + |
| 41 | +* **Event:** Used to create event records that are referred to in Event Contribution content. |
| 42 | + |
| 43 | + * **Fields:** |
| 44 | + * `field_event_dates`: Dates of the event. |
| 45 | + * `field_event_address`: Address of the event venue. |
| 46 | + * `field_event_location`: Location of the event. |
| 47 | + * `field_event_additional_links`: Additional links related to the event. |
| 48 | + * **Configuration File:** `/config/sync/node.type.event.yml` |
| 49 | + |
| 50 | +* **Page:** Used for static content such as "About us" pages. |
| 51 | + |
| 52 | + * **Fields:** |
| 53 | + * `body`: Main content of the page. |
| 54 | + * **Configuration File:** `/config/sync/node.type.page.yml` |
| 55 | + |
| 56 | +## Vocabularies |
| 57 | + |
| 58 | +Taxonomy vocabularies are used to categorize and classify content. |
| 59 | + |
| 60 | +* **Technology:** Stores technologies used in contributions. |
| 61 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.technology.yml` |
| 62 | +* **Project:** Stores projects for community contributions. |
| 63 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.project.yml` |
| 64 | +* **Event Type:** Stores event types, such as DrupalCamp. |
| 65 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.event_type.yml` |
| 66 | +* **Event Contribution Type:** Stores event contribution types, such as session or volunteering. |
| 67 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.event_contribution_type.yml` |
| 68 | +* **Contribution Type:** Stores contribution types, such as submitting a patch. |
| 69 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.contribution_type.yml` |
| 70 | +* **Tags:** Used to group similar articles into categories. |
| 71 | + * **Configuration File:** `/config/sync/taxonomy.vocabulary.tags.yml` |
| 72 | + |
| 73 | +## Views |
| 74 | + |
| 75 | +Views are used to display content lists and blocks, allowing for dynamic and customizable content presentation. |
| 76 | + |
| 77 | +* **Frontpage:** Displays content promoted to the front page. |
| 78 | + * **Configuration File:** `/config/sync/views.view.frontpage.yml` |
| 79 | +* **Content:** Provides an administrative interface to find and manage content. |
| 80 | + * **Configuration File:** `/config/sync/views.view.content.yml` |
| 81 | +* **Recent content:** Displays recently created content. |
| 82 | + * **Configuration File:** `/config/sync/views.view.content_recent.yml` |
| 83 | +* **Files:** Provides an administrative interface to find and manage files. |
| 84 | + * **Configuration File:** `/config/sync/views.view.files.yml` |
| 85 | +* **Patches:** Lists available patches. |
| 86 | + * **Configuration File:** `/config/sync/views.view.patches.yml` |
| 87 | +* **Glossary:** Displays all content, grouped by the first letter of the title. |
| 88 | + * **Configuration File:** `/config/sync/views.view.glossary.yml` |
| 89 | +* **Who's online block:** Shows the usernames of the most recently active users and the total number of active users. |
| 90 | + * **Configuration File:** `/config/sync/views.view.who_s_online.yml` |
| 91 | +* **People:** Provides an administrative interface to find and manage user accounts. |
| 92 | + * **Configuration File:** `/config/sync/views.view.user_admin_people.yml` |
| 93 | +* **Who's new:** Shows a list of the newest user accounts on the site. |
| 94 | + * **Configuration File:** `/config/sync/views.view.who_s_new.yml` |
| 95 | +* **All Contributions:** Lists all contributions across all types. |
| 96 | + * **Configuration File:** `/config/sync/views.view.all_contributions.yml` |
| 97 | +* **Non code contributions:** Lists non-code contributions. |
| 98 | + * **Configuration File:** `/config/sync/views.view.non_code_contributions.yml` |
| 99 | +* **Code contributions:** Lists code contributions. |
| 100 | + * **Configuration File:** `/config/sync/views.view.code_contributions.yml` |
| 101 | +* **Event Contributions:** Lists event contributions. |
| 102 | + * **Configuration File:** `/config/sync/views.view.event_contributions.yml` |
| 103 | +* **Patches on issues:** Lists patches associated with specific issues. |
| 104 | + * **Configuration File:** `/config/sync/views.view.patches_on_issues.yml` |
| 105 | +* **Taxonomy term:** Displays content belonging to a specific taxonomy term. |
| 106 | + * **Configuration File:** `/config/sync/views.view.taxonomy_term.yml` |
| 107 | +* **Content blocks:** Provides an administrative interface to find and manage custom blocks. |
| 108 | + * **Configuration File:** `/config/sync/views.view.block_content.yml` |
| 109 | +* **Archive:** Displays all content, grouped by month. |
| 110 | + * **Configuration File:** `/config/sync/views.view.archive.yml` |
| 111 | + |
| 112 | +## User Roles |
| 113 | + |
| 114 | +User roles define content access and management permissions for different user groups. |
| 115 | + |
| 116 | +* **Administrator:** Has full system access. |
| 117 | + * **Configuration File:** `/config/sync/user.role.administrator.yml` |
| 118 | +* **Authenticated user:** Basic access for logged-in users. |
| 119 | + * **Permissions:** `access content`, `create code_contribution content`, `create event_contribution content`, `create issue content`, `create non_code_contribution content`. |
| 120 | + * **Configuration File:** `/config/sync/user.role.authenticated.yml` |
| 121 | +* **Anonymous user:** Limited access for non-logged-in users. |
| 122 | + * **Permissions:** `access content`, `use text format restricted_html`. |
| 123 | + * **Configuration File:** `/config/sync/user.role.anonymous.yml` |
| 124 | +* **Contribution Moderator:** Moderates contributions. |
| 125 | + * **Permissions:** `access administration pages`, `administer nodes`, `edit any code_contribution content`, `edit any event content`. |
| 126 | + * **Configuration File:** `/config/sync/user.role.contribution_moderator.yml` |
| 127 | +* **API basic read:** Has access to API basic read permissions. |
| 128 | + * **Permissions:** `delete own files`, `send performance traces to sentry`, `view user email addresses` |
| 129 | + * **Configuration File:** `/config/sync/user.role.api_basic_read.yml` |
| 130 | + |
| 131 | +## Block Content Types |
| 132 | + |
| 133 | +Block content types define reusable content blocks that can be placed in different regions of the site. |
| 134 | + |
| 135 | +* **Basic:** A basic block containing a title and a body. |
| 136 | + * **Configuration File:** `/config/sync/block_content.type.basic.yml` |
| 137 | + |
| 138 | +## Social Authentication |
| 139 | + |
| 140 | +* Implemented using the Social Auth module and enables user authentication through social media platforms like Google. |
| 141 | + * **Configuration File:** `/config/sync/social_auth.settings.yml` |
| 142 | + |
| 143 | +## Content Moderation |
| 144 | + |
| 145 | +* Content moderation is implemented using the flag module named `contribution_approval`. This allows moderation of `code_contribution`, `event_contribution`, and `non_code_contribution` content types. |
| 146 | + * **Configuration File:** `/config/sync/flag.flag.contribution_approval.yml` |
| 147 | +* The "Contribution Moderator" role has specific permissions to create, update, and approve contribution content. |
| 148 | + * **Configuration File:** `/config/sync/user.role.contribution_moderator.yml` |
| 149 | + |
| 150 | +This comprehensive content structure ensures organized content management, well-defined user roles, and effective display of information within the application. Understanding these components is crucial for developing and maintaining the project. |
| 151 | +``` |
0 commit comments