定制 ycloudyusa/yusaopeny 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ycloudyusa/yusaopeny

Composer 安装命令:

composer require ycloudyusa/yusaopeny

包简介

YMCA Website Services Drupal distribution

README 文档

README

YMCA Website Services

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.

System Requirements

  • Drupal: 11.3.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:

  1. Fork the repository on GitHub: https://github.com/YCloudYUSA/yusaopeny

  2. Add your fork as a composer repository in your project's composer.json:

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/YOUR_USERNAME/yusaopeny"
        }
    ]
  3. Point to your development branch. Branch names map to composer versions:

    • bugfixdev-bugfix
    • feature/my-featuredev-feature/my-feature
    • maindev-main
    "require": {
        "ycloudyusa/yusaopeny": "dev-YOUR-BRANCH-NAME"
    }
  4. Update dependencies:

    composer update ycloudyusa/yusaopeny --with-dependencies
  5. Make your changes in docroot/profiles/contrib/yusaopeny/ (or docroot/profiles/contrib/openy/)

  6. Test your changes thoroughly (see Testing section below)

  7. 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:

  1. 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
  2. Installation Types (openy.installation_types.yml) - Presets that combine packages

    • Each preset specifies which packages to install
    • standard, extended, small_y, complete
  3. 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

Community & Support

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.

ycloudyusa/yusaopeny 适用场景与选型建议

ycloudyusa/yusaopeny 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 68.87k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2022 年 06 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 ycloudyusa/yusaopeny 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ycloudyusa/yusaopeny 我们能提供哪些服务?
定制开发 / 二次开发

基于 ycloudyusa/yusaopeny 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 68.87k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 4
  • 依赖项目数: 12
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 4
  • Forks: 107
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2022-06-16