ycloudyusa / yusaopeny
YMCA Website Services Drupal distribution
Installs: 53 777
Dependents: 12
Suggesters: 0
Security: 0
Stars: 8
Watchers: 5
Forks: 111
Open Issues: 14
Type:drupal-profile
pkg:composer/ycloudyusa/yusaopeny
Requires
- php: >=8.3
- composer/installers: ^1.2
- cweagans/composer-patches: ^1.0
- drupal/activenet: ^1.0
- drupal/address: ^1.8 || ^2.0
- drupal/addtoany: ^2.0
- drupal/admin_toolbar: ^3.2
- drupal/advanced_help_block: ^1.0
- drupal/better_exposed_filters: ^7.0.5
- drupal/blazy: ^2.4 || ~3.0.0 || ~3.1.0
- drupal/bootstrap_layout_builder: >=2.1.4
- drupal/bootstrap_styles: <=1.1.6 || ~1.2.1
- drupal/captcha: ^1.10 || ^2.0 || ^2.0@beta
- drupal/ckeditor5_paste_filter: ~1.1.0
- drupal/colorapi: ^1.1 || ^2.0
- drupal/confi: ^4.0.0
- drupal/config_update: ^1.6 || ^2 || ^2.0@alpha
- drupal/core: ~11.1.8
- drupal/core-composer-scaffold: ~11.1.8
- drupal/crop: ^2
- drupal/css_editor: ^1.3 || ^2
- drupal/csv_serialization: ^3 || ^3.0@beta || ^4.0
- drupal/ctools: ^3.13 || ^4
- drupal/custom_formatters: ^4.0@beta || ^4.1@beta
- drupal/datalayer: ^1.0 || ^2.0 || ^2.0@RC
- drupal/daxko: ^1.0
- drupal/draggableviews: ^2.1
- drupal/dropzonejs: 2.1 || ^2.5
- drupal/easy_breadcrumb: ^2
- drupal/editor_advanced_link: ^1 || ^2.1
- drupal/embed: >=1.8
- drupal/entity: ^1
- drupal/entity_browser: ^2
- drupal/entity_clone: >=2.0.0-beta5 || ^2
- drupal/entity_embed: ^1.5
- drupal/entity_reference_revisions: ^1.6
- drupal/features: ^3 || ^4
- drupal/field_group: ^3.0
- drupal/focal_point: ^2 || ^2.0@alpha
- drupal/fontyourface: ^3.3 || 3.x-dev@dev || ^4.0 || ~5.0.0
- drupal/geolocation: ^3.0
- drupal/google_analytics: ^2.5 || ^3.1 || ^4.0 || ^4.0@alpha
- drupal/google_tag: ^1.4 || ^2.0
- drupal/hal: ^1.0 || ^2.0
- drupal/image_widget_crop: ^2.4
- drupal/inline_entity_form: 3.0.0-rc21 as 2.0.0-rc10
- drupal/jquery_ui_tabs: ^2.0
- drupal/jquery_ui_tooltip: ^2.0
- drupal/jquery_ui_touch_punch: ^1.1
- drupal/lb_testimonial_blocks: ^1.0
- drupal/libraries: ^3.0 || ^4.0
- drupal/link_attributes: ^1 || ^2
- drupal/media_directories: ^2.2@beta || ~2.2.0
- drupal/metatag: ^1 || ^2
- drupal/migrate_plus: ^5 || ^6
- drupal/migrate_source_csv: ^3
- drupal/migrate_tools: ^5.0 || ^6
- drupal/openy_branch_selector: ^1.0.3
- drupal/openy_carnation: ^4.0.0-beta3 || ^4.0@rc || ^4.0.0
- drupal/openy_daxko2: ^1.0
- drupal/openy_er: ^1.0
- drupal/openy_gtranslate: ^1.0
- drupal/openy_mappings: ^1.0
- drupal/openy_node_session: ^2.1.2
- drupal/openy_pef_gxp_sync: ^2.0.0
- drupal/openy_repeat: ^3.1.0
- drupal/openy_socrates: ^1.0
- drupal/paragraphs: ^1.12
- drupal/pathauto: ^1.6
- drupal/personify: ^1.0
- drupal/plugin: 2.5 || ^2.8
- drupal/program_search: ^2.0.0
- drupal/protected_pages: ^1.4
- drupal/rabbit_hole: ^1.0 || ^1.0@beta
- drupal/recaptcha: ^3
- drupal/redirect: ^1
- drupal/responsive_favicons: ^2.0 || ^3.0
- drupal/scheduler: ^2 || ^2.0@RC
- drupal/search_api: ^1.31
- drupal/search_api_solr: ^4.3.1
- drupal/simple_menu_icons: ^2.2 || ^3
- drupal/simple_sitemap: ^3.7 || ^4.1
- drupal/slick: ^2 || ^3.0
- drupal/slick_views: ^2 || ^3.0
- drupal/social_feed_fetcher: ^3.1
- drupal/token: ^1.11
- drupal/token_filter: ^1 || ^2.0
- drupal/twig_tweak: ^3.4
- drupal/tzfield: ^1.3
- drupal/upgrade_tool: ^4.0.0
- drupal/vendor_stream_wrapper: ^2.0.1
- drupal/verf: ^2.0
- drupal/video: ^1.5 || ^3
- drupal/video_embed_field: ^2.0 || ^3.0@beta || ~3.0.0
- drupal/views_block_filter_block: ^1.2 || ^2.0
- drupal/views_data_export: ^1.0 || 1.0-rc1
- drupal/views_field_formatter: ^4.1
- drupal/views_infinite_scroll: ^1.7 || ^2
- drupal/webform: ^6.2 || ^6.2@beta
- drupal/ws_small_y: ^1.2.1
- drupal/y_donate: ^2.0
- drupal/ymca_sync: ^10 || ^11
- grt107/grt-youtube-popup: ^1.0
- guzzlehttp/guzzle: ^6 || ^7
- league/csv: ^9.11.0 !=9.12.0
- library-ckeditor/colorbutton: 4.10.1
- library-ckeditor/font: 4.12.1
- library-ckeditor/panelbutton: 4.10.1
- library-davekoelle/alphanum: 1.0.0
- library-jaypan/jquery_colorpicker: 1.0.1
- library-smonetti/btbutton: 1.0.2
- library-vakata/jstree: ^3.3
- mpdf/mpdf: ^7 || ^8.1 || v8.0.4 || ~v8.0.4
- npm-asset/blazy: ^1.8
- npm-asset/dropzone: ^5.5
- npm-asset/jquery-ui-touch-punch: ^0.2.3
- npm-asset/jquery.easing: ^1.4
- npm-asset/slick-carousel: ^1.8 || ^2.7
- oomphinc/composer-installers-extender: ^1.1 || ^2.0.0
- open-y-subprojects/common_scss: dev-main
- open-y-subprojects/openy_content_core: ^3.0
- open-y-subprojects/openy_custom: ^3.0.0
- open-y-subprojects/openy_daxko_gxp_syncer: ^1.2
- open-y-subprojects/openy_features: ^4.1.0
- open-y-subprojects/openy_focal_point: ^1.0
- open-y-subprojects/openy_hours_formatter: ^2.0 || ^3.0.0
- open-y-subprojects/openy_map: ^6@beta || ^6.0.0
- open-y-subprojects/ynorth_gxp_spots_proxy: ^1.0.1
- ycloudyusa/useless_machines: ^2.0.3
- ycloudyusa/ws_outsiders: dev-main
- ycloudyusa/y_lb: ^4.0.0
- ycloudyusa/y_lb_demo_content: ^3.3 || ~4.0.0
- ycloudyusa/y_pef_schedule: ^1.0
- ycloudyusa/yusaopeny_activity_finder: ^5.0
- ymcatwincities/media_entity_document: *
Requires (Dev)
- consolidation/robo: ^3 || ^4 || ~5.0.0
- drush/drush: ^12 || ~13.0.0
- open-y-subprojects/openy_docs: dev-main
Conflicts
- drupal/ctools: 3.10 || 4.0.1
Replaces
- dev-main
- 11.1.0.0-beta1
- 11.1.0.0-alpha3
- 11.1.0.0-alpha2
- 11.1.0.0-alpha1
- 11.0.0.0-alpha1
- 10.5.0.1
- 10.5.0.0
- 10.4.0.0
- 10.3.x-dev
- 10.3.10.2
- 10.3.10.1
- 10.3.10
- 10.3.4
- 10.3.3.5
- 10.3.3.4
- 10.3.3.3
- 10.3.3.2
- 10.3.3.1
- 10.3.3
- 10.3.2.4
- 10.3.2.3
- 10.3.2.2
- 10.3.2.1
- 10.3.2
- 10.3.1.1
- 10.3.1
- 10.3.0.1
- 10.3.0
- 10.2.x-dev
- 10.2.14.1
- 10.2.14
- 9.2.13.0
- 9.2.12.2
- 9.2.12.1
- 9.2.12
- 9.2.11.4
- 9.2.11.3
- 9.2.11.2
- 9.2.11.1
- 9.2.11
- 9.2.10.1
- 9.2.10.0
- 9.2.9.0
- 9.2.8.2
- 9.2.8.1
- 9.2.8.0
- 8.2.7.3
- 8.2.7.2
- 8.2.7.1
- 8.2.7
- 8.2.6.5
- 8.2.6.4
- 8.2.6.3
- 8.2.6.2
- 8.2.6.1
- 8.2.6.0
- 8.2.5.3
- 8.2.5.2
- 8.2.5.0
- 8.2.4.6
- 8.2.4.5
- 8.2.4.4
- 8.2.4.3
- 8.2.4.2
- 8.2.4.1
- 8.2.4.0
- 8.2.3.5
- 8.2.3.4
- 8.2.3.3
- 8.2.3.2
- 8.2.3.1
- 8.2.3
- 8.2.2.3
- 8.2.2.2
- 8.2.2.1
- 8.2.2.0
- 8.2.1.3
- 8.2.1.2
- 8.2.1.1
- 8.2.1
- 8.2.0.9
- 8.2.0.8
- 8.2.0.7
- 8.2.0.6
- 8.2.0.5
- 8.2.0.4
- 8.2.0.3
- 8.2.0.2
- 8.2.0.1
- 8.2.0
- 8.2.0-beta.1
- 8.2.0.0-beta
- 8.1.14.2
- 8.1.14.1
- 8.1.14
- 8.1.13.2
- 8.1.13.1
- 8.1.13
- 8.1.12.3
- 8.1.12.2
- 8.1.12.1
- 8.1.12
- 8.1.12-beta1
- 8.1.11
- 8.1.10
- 8.1.9
- 8.1.8
- 8.1.7
- 8.1.6
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 1.14.2
- dev-new_readme
- dev-ITCR-877
- dev-ITCR-823
- dev-qa-upgrade-path
- dev-ITCR-861
- dev-ITCR-860
- dev-drupal11.1
- dev-3538784-openyrose-references-found
- dev-drupal10_5fixes
- dev-migrate_bump
- dev-drupal11-alpha
- dev-d11build
- dev-svicervlad-patch-2
- dev-drupal11lenient-update-deps
- dev-svicervlad-patch-1
- dev-ITCP-280
- dev-drupal-core-10.5
- dev-10.4.0-fixes
- dev-issue-3529264
- dev-ITCP-331
- dev-10.5.0-beta1@beta
- dev-ITCP-287
- dev-migrate-ymca-sync
- dev-test-site-install
- dev-drupal10.5
- dev-ITCR-733
- dev-ITCP-228
- dev-ITCR-742
- dev-ITCR-708
- dev-core-10.4
- dev-drupal_core_10.4
- dev-small_y
- dev-openy_features
- dev-JsCollectionOptimizerLazy
- dev-distro_no_paragraphs
- dev-openy_map_hotfix
- dev-10.2.x-af4
- dev-cleanup_failing_patches
- dev-openy_repeat_patch_fix
- dev-v3_demo_main
- dev-v3_demo_main_home
- dev-v3_y_lb_demo_content
- dev-v2.x-y_lb_demo_content
- dev-drupal10_1_no_please
- dev-9.x-2.x
- dev-drupal10
- dev-y_layout_builder
- dev-9.x-2.x-af4
- dev-core9.4
- dev-dev-9.x-2.x-af4
- dev-8.x-2.x
- dev-9.x-2.x-PRODDEV-265
- dev-9.x-2.x-issue2388
- dev-8_2_7_1
- dev-9.x-3.x
- dev-alerts_location_fix
- dev-8.x-2.x-temp
- dev-try2
This package is auto-updated.
Last update: 2025-10-07 21:04:47 UTC
README
YMCA Website Services
ycloud.y.org/open-y-association-websites
An open-source platform for YMCAs, by YMCAs, built on Drupal.
YMCA Website Services Distribution
YMCA Website Services (formerly OpenY) is a Drupal distribution built specifically for YMCAs. This repository contains the installation profile that provides content types, modules, configuration, and features for building YMCA websites.
- Distribution Repository: https://github.com/YCloudYUSA/yusaopeny
- Project Template: https://github.com/YCloudYUSA/yusaopeny-project
- Documentation: https://ds-docs.y.org
- Community: https://ycloud.y.org/open-y-association-websites
System Requirements
- Drupal: 11.1.x
- PHP: 8.3 or higher
- Composer: 2.0 or higher
- Database: MySQL 8.0+ or MariaDB 10.6+
- Web Server: Apache 2.4+ or Nginx 1.18+
For detailed server requirements, see the YMCA Website Services server requirements.
Quick Start
Create a New Project
Latest stable release:
composer create-project ycloudyusa/yusaopeny-project MY_PROJECT --no-interaction
cd MY_PROJECT
Latest development version (Drupal 11):
composer create-project ycloudyusa/yusaopeny-project:dev-main-development MY_PROJECT --no-interaction
cd MY_PROJECT
Development Environments
Docksal (Recommended)
Docksal provides a complete Docker-based development environment:
# Install Docksal (if not already installed) # See https://docksal.io/installation # Initialize the project fin init # Access the site # Default URL: http://yusaopeny.docksal.site
For more details, see the installation documentation.
DDEV
DDEV support is available with basic configuration in the .ddev/
directory.
Manual Installation
If using your own environment, after creating the project:
# Configure your database settings # Edit docroot/sites/default/settings.php # Install Drupal with the Web UI # Visit your site in a browser and follow the installation wizard # OR install via Drush (recommended for developers) cd docroot drush site:install openy \ openy_configure_profile.preset=complete \ openy_theme_select.theme=openy_carnation \ openy_terms_of_use.agree_openy_terms=1 \ install_configure_form.enable_update_status_emails=NULL \ --account-name=admin \ --site-name='YMCA Website Services' \ --yes
Installation Presets
The profile offers installation presets that determine which feature packages are enabled:
Small Y (Recommended - Default)
- Status: Standard and Small Y profiles are being merged into this unified installation
- Streamlined installation suitable for most YMCA organizations
- Includes: Alerts, Analytics, Editorial, Locations, Scheduler, Search, SEO, Translation, Webforms, Layout Builder
- Best for: Most YMCA websites, especially smaller to mid-size organizations
- This will become the primary installation option
Standard
- Status: Being phased out - merging with Small Y
- Legacy installation type maintained for backward compatibility
- Includes: Alerts, Editorial tools, News, SEO, Webforms, Layout Builder
- Recommendation: New installations should use Small Y instead
Extended
- For organizations requiring advanced features and complex integrations
- Adds: Analytics, Events, Locations, Membership, Translation, Search, Activity Finder, Home Branch
- Includes CRM integrations (GroupEx Pro, ActiveNet, Daxko)
- Best for: Large organizations with complex program management needs
Complete (Developers Only)
- For development and testing purposes only
- Full feature set with all packages and demo content
- Includes: ActiveNet, Daxko, GroupEx Pro, Programs, Camps, Blog, and every available package
- Only available via Drush installation (hidden from web UI)
- Best for: Development, testing, evaluation, and demonstrations
- Not recommended for production sites
Specify preset via Drush:
openy_configure_profile.preset=small_y # Recommended for most sites openy_configure_profile.preset=extended # For complex usage openy_configure_profile.preset=complete # Developers only
Migration Note: Sites currently using the Standard preset will continue to work. The Standard preset remains available for backward compatibility but is not recommended for new installations.
Available Themes
- openy_carnation - The default theme for Y USA
Specify with: openy_theme_select.theme=openy_carnation
Contributing & Development
Working with a Fork
To contribute to YMCA Website Services, you'll work with a fork of this repository:
-
Fork the repository on GitHub: https://github.com/YCloudYUSA/yusaopeny
-
Add your fork as a composer repository in your project's
composer.json
:"repositories": [ { "type": "vcs", "url": "https://github.com/YOUR_USERNAME/yusaopeny" } ]
-
Point to your development branch. Branch names map to composer versions:
bugfix
→dev-bugfix
feature/my-feature
→dev-feature/my-feature
main
→dev-main
"require": { "ycloudyusa/yusaopeny": "dev-YOUR-BRANCH-NAME" }
-
Update dependencies:
composer update ycloudyusa/yusaopeny --with-dependencies
-
Make your changes in
docroot/profiles/contrib/yusaopeny/
(ordocroot/profiles/contrib/openy/
) -
Test your changes thoroughly (see Testing section below)
-
Submit a pull request to the main repository
For detailed contribution guidelines, review:
Code Standards
This project follows Drupal coding standards. Before submitting code:
# Run code sniffers (from project root) cd docroot ./runsniffers.sh # Auto-fix code style issues ./runcodestyleautofix.sh
Testing
For testing procedures, see SMOKE_TESTS.md for manual testing or the Smoke Tests Index for comprehensive testing guidelines.
Key Features
The distribution is organized into packages - logical groupings of related functionality. Each installation preset enables different combinations of packages.
Core Packages
- Editorial - Content components for building flexible pages (galleries, banners, grids, breadcrumbs)
- Layout Builder - Drupal's drag-and-drop page builder with 30+ custom components
- Alerts - Create and manage website alerts
- News - News posts with listings, featured content, and taxonomy
- Webforms - Advanced form building with submission handling
- SEO - Metatags, sitemaps, and search engine optimization tools
Location & Membership Packages
- Locations - Branch and facility management with hours, amenities, maps, and alerts
- Membership - Membership content types and calculators
- Camps - Camp management and location finder integration
- Home Branch - Personalized branch selection for users
Program & Events Packages
- Programs - Program content types with subcategories
- Events - Event management with listings and calendars
- Blog - Blog posts with multiple listing types
- Scheduler - Schedule content publishing and unpublishing
Integration Packages
- ActiveNet - ActiveNet CRM integration
- Daxko - Daxko program and membership integration
- GroupEx Pro - Group exercise class scheduling
- Personify - Personify CRM integration
- Activity Finder - Program search with registration integration
Additional Packages
- Analytics - Google Analytics and Google Tag Manager integration
- Search - Solr or Google Custom Search integration
- Translation - Multilingual support
- Social - Social posts and feeds
- Social Sharing - AddThis social sharing integration
- Theme Customization - Color schemes and CSS editing
See openy.packages.yml
for the complete list of packages and their modules, or browse the Content Structure documentation for detailed information about each feature.
Architecture
Package-Based System
YMCA Website Services uses a package-based architecture:
-
Packages (
openy.packages.yml
) - Logical groupings of modules by functionality- Each package has: name, description, help text, and list of modules
- Examples:
editorial
,locations
,blog
,activity_finder
-
Installation Types (
openy.installation_types.yml
) - Presets that combine packages- Each preset specifies which packages to install
standard
,extended
,small_y
,complete
-
Module Installation - During installation:
- User selects a preset (or specifies via Drush)
- System loads packages for that preset
- Installs all modules from those packages (with dependencies)
- Optionally imports demo content for selected preset
Directory Structure
Path | Purpose |
---|---|
config/install/ |
Default configuration installed with profile |
config/optional/ |
Optional configuration for specific features |
src/ |
Profile PHP classes (forms, services, plugins) |
src/Form/ |
Installation wizard forms |
patches/ |
Contrib module patches |
build/ |
Testing and CI/CD configurations |
themes/ |
Base theme definitions |
openy.packages.yml |
Package definitions |
openy.installation_types.yml |
Installation preset definitions |
openy.profile |
Installation tasks and hooks |
openy.install |
Install and update hooks |
Custom Modules Location
Custom modules are not stored in this repository. They are managed as separate composer packages:
open-y-subprojects/*
- Core custom modules (openy_map, openy_focal_point, etc.)ycloudyusa/*
- Y USA maintained packages (y_lb, yusaopeny_activity_finder, etc.)- Installed to:
docroot/modules/contrib/
See CLAUDE.md for detailed development documentation.
Resources
Documentation
- Main Documentation: https://ds-docs.y.org
- User Guides: https://ds-docs.y.org/docs/user-documentation/
- Developer Documentation: https://ds-docs.y.org/docs/development/
- Content Structure: https://ds-docs.y.org/docs/content-structure/
Community & Support
- Community: https://ycloud.y.org/open-y-association-websites
- Issue Queue: https://github.com/YCloudYUSA/yusaopeny/issues
- Changelog: GitHub Releases
Support
YMCA Website Services is maintained by:
- Y-USA Digital Services
- ITCare
- ImageX
- Five Jars
For implementation support, training, and customization services, contact the Y-USA Digital Services team.
License
YMCA Website Services is licensed under the GPL-2.0-or-later. This is free and open-source software.
Note: This distribution was formerly known as "OpenY". References to "openy" in code and paths are maintained for backward compatibility.