Harnessing the Power of the Group Module

Slides:



Advertisements
Similar presentations
Editorial roles Members of a Manila site can be assigned an editorial role if you want to grant them access to write stories or modify the appearance of.
Advertisements

Drupal Basics Part 3 Create a new page Main tabs menu Using the theme Agricultural Communications Services Integrated Media Training Sessions
Business Development Suit Presented by Thomas Mathews.
KompoZer. This is what KompoZer will look like with a blank document open. As you can see, there are a lot of icons for beginning users. But don't be.
WebCT CE-6 Assignment Tool. Assignment Tool and Assignment Drop Box Use “Assignment” button under Course Tools (your must be in “Build” mode) to: –Modify.
6 th Annual Focus Users’ Conference Application Editor and Form Builder Presented by: Mike Morris.
The Dr ü G Book: An Intro to Drupal The Dr ü G Book: An Intro to Drupal (Dr ü G: Drupal User ’ s Group - users, not developers) This is an introduction.
November 3, 2011 Deborah de Bruin Building Digital Libraries.
9.1 © 2004 Pearson Education, Inc. Exam Planning, Implementing, and Maintaining a Microsoft Windows Server 2003 Active Directory Infrastructure.
Core Publisher: Station Administrator Tools. Training 1: Site Administration Training 2: Programs Training 3: Content Tagging Training 4: Creating Posts.
>To add a component via Page Editor, go to the View tab and check the Designing checkbox to enter Designing mode. >Next, simply click the Component button.
Advanced SAGE Formative Adding Your Own Resources Using Common Assessments Creating Educator Groups.
Simple Pages for Omeka Lauren Dzura LIS
Lorie Stolarchuk Learning Technology Trainer 1 What has changed with the 2.7.X Upgrade to CLEW?
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
New Features in Release 9.2 (July 27, 2009). 2 Release 9.2 New Features Updated Shopping Experience Home/Shop page Shop at the top search New Hosted Supplier.
1.Getting Started 2.Modifying Design 3.Page 4.News 5.Events 6.Photo Gallery 7.Newsletter Index Training 15 th Mar., 2011.
Moodle (Course Management Systems). Glossaries Moodle has a tool to help you and your students develop glossaries of terms and embed them in your course.
Moodle (Course Management Systems). Managing Your class In this Lecture, we’ll cover course management, including understanding and using roles, arranging.
Seattle Drupal Clinic Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology.
Core Publisher: Station Administrator Tools. Training 1: Site Administration Training 2: Programs Training 3: Content Tagging Training 4: Creating Posts.
Introduction to Views Stanford Drupal Camp April 6, 2013.
Table of Contents TopicSlide Administrator Login 2 Administrator Navigations 3 Managing AlternativeDr.com Blogs 4 Managing Dr. Lloyd May Blogs 5 Managing.
+ Publishing Your First Post USING WORDPRESS. + A CMS (content management system) is an application that allows you to publish, edit, modify, organize,
CCS Information and Support Center Introduction. What is the information center for? Not only does our web-based.
Justin Scheitlin Daisey Fahringer
myWizard Metrics User Guide For Base Deployed Projects
Innotas Reports, Dashboards, and Filters
MicrosoftTM SharePoint Content Management SystemTutorial
Getting an account with WordPress.com
Core LIMS Training: Project Management
Displaying Content in Core Publisher.
Calendar Browser is fully integrated into SharePoint
Creative MediaMind Primary colors EB Orange 246/137/51
CMS I – BASIC WEB EDITING INTRODUCTION TO THE CMS
First EURAXESS TOPIII training for Portal Administrators
About SharePoint Server 2007 My Sites
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Single Sample Registration
Core LIMS Training: Advanced Administration
Domain Matching for BID Association Requests
New Features of Security Management 11
Welcome to our first session!
© Paradigm Publishing, Inc.
iCIMS 17.3 Release: Highlights
(In)organic Groups The D8 Group module Washington, DC - August, 2018
Canvas Discussion Boards
Taxonomy Terms as Organic Groups
B2B Portal Training Materials
Superior Drupal Integration for CiviCRM with a focus on Events
Oracle Sales Cloud Sales campaign
Qualtrics Survey Kenyon
INFM 603 Main Class Project
Canvas Discussion Boards
Module 2: Mission Set-up & User Management
Getting Started with Google Classroom
Creating and Managing Categories, Tags & Topics
Innotas Reports, Dashboards, and Filters
Overview of Contract Association Batch Upload
HP Quality Center 10.0 The Test Plan Module
Tribal Stewardship Cohort Program
Rational Publishing Engine RQM Multi Level Report Tutorial
B2B Portal Training Materials
Drupal user guide Evashni Jansen Web Office.
Evaluations and Trials in Alma
Presentation transcript:

Harnessing the Power of the Group Module Microsites Harnessing the Power of the Group Module DrupalGovCon 2019

Senior Development Engineer Scot Self Senior Development Engineer Live and work remotely from Birmingham, AL Married ~19 yr to Daphne, 2 kids (Juniper - 11, Tristan - 9, homeschooled) BA from Alabama, MA from NYU (in French!) Amateur musician, huge fan of Phish and bluegrass @scotself on Twitter, IRC and drupal.org ~10 yrs with Drupal, front-end, site-building Semi-frequent module contributor

WE’RE HIRING!!

Agenda What is a “microsite”? What does a microsite need? Group module basic concepts Bonus Features Basic Group Configuration Demo! Expected Problems Agenda Each Mission Area of the USGS site could be called a “microsite”, with its sidenav keeping the visitor within the context of the MA they’re browsing until they decide to browse outside using top nav.

Overused buzzword or actual useful concept? What is a “Microsite”? Overused buzzword or actual useful concept?

A page or set of pages dedicated to a specific subject May or may not be siloed off from the rest of a main site If multiple pages, often has primary or secondary navigation to browse additional pages within that context USGS Example Group D8 “Microsite” Each Mission Area of the USGS site could be called a “microsite”, with its sidenav keeping the visitor within the context of the MA they’re browsing until they decide to browse outside using top nav.

What does a Microsite need? Typical base functionality

Group D8 Membership Can join, be added to (or be invited to*) a group Access to a group and its content based on Group type roles and permissions (along with Drupal’s) * https://www.drupal.org/project/group/issues/2752603 Group D8 Membership

Need to be able to manage various entities (nodes, media, menus, etc Need to be able to manage various entities (nodes, media, menus, etc.) which “belong” to a group Each group’s content may or may not need to be siloed off from other groups Group D8 Ownership

Templating and/or Customization Group menus - group-specific navigation/sub-navs Customized group and content: Layout Builder- entity templates w/individual fields Layout Builder - custom blocks w/Paragraphs Paragraphs - nested and themed, sections w/columns, column sizing, allowed paragraph types (or a combination of all!) Group D8 Templating and/or Customization Different ways of assembling the group home page and its content. Templating of a group microsite will often (almost always) include navigation specific to the microsite. Customizing the group and any additional content itself can be done in multiple ways. We’re going to talk about 2 which use the layout builder and one with just paragraph fields, but you can easily combine all 3 to build your pages for maximum flexibility.

Group Module Basic Concepts How Group Module covers Microsite building requirements

Group Module Fieldable Group entity; 1st-class object Group content entities relate entities to the Group, can add fields to describe the relationship Group membership entity relates users to the Group, can add fields to describe user’s relationship to the Group. Roles/permissions per group type

“Group node (article)” (relationship entity) Nodes (article) Nodes (basic page) Nodes (any CT) “Group node (article)” (relationship entity) “Group node (basic page)” (relationship entity) “Group node (any CT)” (relationship entity) Group Group membership Credit: Mike Anello (@ultimike) Users

Essential modules for reasonable Group functionality Modules providing important group content plugins/functionality Group menu Group media Group taxonomy Group domain Honorable Mention Menu link - no integration with core menu system for Group or Group Content entities Block Visibility Group - combine multiple, advanced conditions for block visibility Critical Helpers Essential modules for reasonable Group functionality

Patches in progress, custom code ideas Bonus Features Patches in progress, custom code ideas

Have a group status field that affects access Group core does not have any concept of published/unpublished Adds a “Published” checkbox like nodes Adds permissions for unpublished groups https://www.drupal.org/project/group/issues/2850377 Unpublish groups Have a group status field that affects access

Support for Revisions on groups Group core has no support for revisions Adds revision handling so that revisions and content moderation work Handles sites with existing groups https://www.drupal.org/project/group/issues/2829966 https://www.drupal.org/project/group/issues/3029907 https://www.drupal.org/project/group/issues/3029908 Revisionable Groups Support for Revisions on groups

Administer users by group role Core Group permissions not robust enough to support users adding members/editing existing memberships without being able to upgrade their own access! https://www.drupal.org/project/group/issues/3027685 Administer users by group role Permissions to choose which roles a member can assign, edit or delete

Easy entity membership management Group core provides only one way to add content to a group - the Content tab (add new/existing) Patch adds a new gcontent_field module, an entity’s membership groups can be managed directly from the entity itself Only on existing nodes, not when initially adding to a Group https://www.drupal.org/project/group/issues/2813405 Easy entity membership management Add a field to view and edit content’s groups

Integrates Groups with the Domain Access module Domain Group Integrates Groups with the Domain Access module

Domain Group ...continued

Setting up Groups and Group Content Basic Config Setting up Groups and Group Content

Group creator membership Creator must complete membership (2-step wizard) Automatically configure admin role Automatically assign admin role to creator Submit button text on new Group form affected by combination of the above Create revision Uncheck if membership has no fields

“Install” a plugin = Create a new, fieldable relationship entity type, make that entity bundle available as “group content” 2-step wizard Create the relationship entity after creating the related entity If no fields on the relationship entity, uncheck 2-step wizard Redirects to either relationship entity or related entity, depending Group membership plugin cannot be removed but is fully fieldable for adding additional info to users’ membership Group menu plugin can be configured to add menu to Group on Group creation and add default link with customizable title

Delete relationship entity Each group content entity type is fieldable, describing the entity’s relationship to the Group. An entity related to a Group can be viewed through the group content entity BUT not all entities of a particular type are necessarily related to a Group. Uninstalling a plugin = Delete relationship entity Related entities remain intact if relationship entity is removed. Example of extending the GroupContentEnablerBase class to allow Commerce Product types to be Group Content

Create additional (Group type-specific) roles as needed, tweak permissions: Allow all to view group - how else can they find/join the Group? Don’t allow admin to leave Group? Add, Edit/Delete any/own for each Group Content bundle and related entity View (and View unpublished if using this patch) for each Group Content bundle and related entity NOTE: Permissions not added automatically to admin role for enabled Group content bundles

Related entities tab = ALL entities related to the Group - nodes, media, menus, users Add existing entity Create group content for existing entities (users, content, media, etc) if plugin for that content type has been installed Allows for “sharing” of nodes between groups while still having the ability to customize the relationship metadata (group content entity is fieldable) If no CTs have been installed as Group content, takes directly to the “Add member” form Add new entity Create a new related entity (node, menu, etc.) and a Group Content entity in 1 step (or 2 for CTs which have a relationship entity defined and 2-step enabled) Cannot add members from here Separate tabs for some entity types with group content entities (members, content, menus, media, etc.)

DEMO TIME!

Sections > 1-4 Column Section > Allowed Types Can customize which allowed types are allowed in each column of each variation (e.g. hero banner only allowed in 1-col) Also allows you to theme very specifically (e.g. image in 1-col v. 4-col Nesting of Paragraphs is crazy powerful but also increases complexity Paragraphs Experimental form with Modals is a nice touch

Each column in each section type can define allowed paragraph types 1-column section - hero banner + all others 2-4 column sections - all basic paragraph types Using nesting for increased flexibility Contacts - multi-value Contact (single) paragraph reference Lists - bulleted, list with icon, list with icon per list item

Required fields set up Layout Builder, allow customization Additional customizable content Paragraphs fields, nested Custom block types (w/paragraphs)

Expected Problems Things you may run into, especially with a more complex setup, possible approaches

“2-step wizard” can be confusing to even experienced users Edit tab only edits the Group Content entity (not the actual node) Use contextual links Custom module (separate “edit relation”, “edit content” links) After creating new related entity, may end up on new entity instead of group content entity 2-step wizard enabled - save takes you to group content 2-step wizard disabled - save takes you to node Most likely you want to enable the wizard Add Group Content entities to Group menus (NOT the node!) URL field for the Group Content entity Setting up role for new user when added to the group Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Menu link, Group menus, revisions No direct support for menus in Group or Group Content - requires menu link (field) module Group content entities support only related entities with integer ids https://www.drupal.org/project/group/issues/2797793 - Entities identified by strings as group content Revisions not supported out of the box https://www.drupal.org/project/group/issues/2829966 - Support for revisions https://www.drupal.org/project/group/issues/3030127 - Combined support for revisions and related entities with non-integer ids (menus) Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Menu Link field allowed menus Group menu plugin for a Group type can be set to: Automatically create a new menu for new Groups Automatically create an initial link in new menus New groups’ menus need to be added to the field as an allowed menu before you can add group_content to it Menus you don’t want available are in the dropdown Write a small custom module with a form_alter on field_menu_link which just sets the default menu as group-[group_id]-menu and disables the dropdown altogether Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Config management and group menus - Group menus disappear after deploying! Group menu plugin - option to auto-create menu for each group Menu_link fields on the group content - available menus need to have group menus available in order to place group content in them Menus and field settings = configuration entities - when drush cex is run in dev/local, menus and fields are exported for deploy Normally, production environments only run drush cim - missing config (menus built in prod but not on dev) are deleted Enter Config Split - export specific config (group menus) to a folder before importing new config Example new process drush csex menus, drush csex group_menu_link_field, drush cim Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Media browsing - group context Media browser functionality has no concept of Group context - users see all media site-wide Write custom module which intercepts Views’ access handler based on your needs Get user’s groups (gids), only show media which is in the user’s groups Also consider adding a boolean field (“flag”) on media to flag assets as “global” Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Multilingual and Content Moderation Paragraphs are Entity Reference Revision field (not Entity Reference field) Nested paragraphs makes this even more complex Editing a Paragraphs attached to a Group does not trigger a revision to be created (works as expected with Paragraphs on nodes) Needed patch to get Group to play nicely with Content Moderation https://www.drupal.org/project/group/issues/2906085 Revisions for translated content are not displaying when in a Draft state This is a limitation from Core and the bug is in here: https://www.drupal.org/project/drupal/issues/3036199 Oddly enough, enabling content moderation solved some issues with translations and entity reference revisions Even if you don’t use the auto-create option and manually add menus in dev for testing, this is problematic.

Links (In)organic Groups - The D8 Group Module (2018 GovCon) (video) Group - an alternative to Organic Groups OS Training, Organizing users using Group Phase2, Building community sites with Drupal 8 Acquia “module of the week” series - 1/31/17 DrupalEasy StreamCast - D8 Group module (video) DrupalCon Vienna 2017 - DrupalCon Vienna 2017: Building social websites with Group and Open Social (video) DrupalCamp St. Louis - Group: an alternative to Organic Groups (video) Modules unraveled podcast # 158 (audio) Setting Up User Groups Is Now Easier Than Ever Acquia Module of the Week - January 2017 DrupalCon Baltimore: How we develop Organic Groups 8 after 2 years with Elm (@video) Taxonomy as Organic Groups (video)

WE’RE HIRING!!