Giter VIP home page Giter VIP logo

silverstripe-fundamental's Introduction

Silverstripe Fundamental - a foundation for modular pages

Provides essential, foundational elements for building modular pages using Silverstripe CMS and the Elemental module.

Requirements

Installation

To install Fundamental (with requirements included) use Composer:

composer require minimalic/silverstripe-fundamental

Refresh your database by navigating to your website's root directory in the shell and running: vendor/bin/sake dev/build "flush=all"

Or, use your base URL with: /dev/build?flush=all

Recommended Extensions

The Fundamental extension is optimized for the "Bulk Upload" feature provided by GridField Bulk Editing Tools.

Install using composer (optional):

composer require colymba/gridfield-bulk-editing-tools

Available Modules

  • Image Block (ModuleImage) - Block with single image banner
  • Hero Banner Block (ModuleHeroBanner) - Displays a hero banner featuring text overlayed on an image
  • Hero Split Block (ModuleHeroSplit) - Displays a hero split with image and text side-by-side. Allows switching the order
  • Slideshow (ModuleSlideshow) - Image slider/carousel (Bootstrap compatible)
  • Gallery (ModuleGallery) - Image thumbnails as a grid

Customization

Custom Theme for ModularPage

Create your own ModularPage.ss template inside your theme's template directory at:

minimalic/Fundamental/Pages/Layout/

Custom Themes for Modules

By default the Fundamental extension uses Bootstrap 5 classes for templating.

To override default templates for modules/blocks, create your own template file (e.g., ModuleImage.ss) inside your theme's template directory at:

minimalic/Fundamental/Modules/

Alternatively copy the entire vendor/minimalic/silverstripe-fundamental/templates/ directory to your templates/ directory and customize all template overrides.

Options for custom image upload directory

By default images (modules: "Image Block", "Hero Banner Block"...) will be uploaded to images/parent-class/parent-title, where parent is the page/object holding the module. To change this behavior add this to your config (e.g. inside mysite.yml):

minimalic\Fundamental\Modules\ModuleImage:
  image_directory_name: 'images'
  image_directory_sub_struct: 'class/parent'

For the image_directory_name configuration option you can chose the top directory name for uploaded files. The available options for image_directory_sub_struct are:

  • parent (parent page title)
  • class/parent (parent page class/title, default)
  • element (current element title)
  • class/element (current element class/title)

The "Slideshow" and "Gallery" modules provide one additional image_directory_sub_struct option:

  • parent/element (parent page title/current element title)
minimalic\Fundamental\Modules\ModuleGallery:
  image_directory_name: 'images'
  image_directory_sub_struct: 'parent/element'

Global configuration

Set image resize quality (Optional)

Set the global image quality inside your config (e.g. mysite.yml) and enable forced resampling for not-resized images (optional):

SilverStripe\Assets\File:
  force_resample: true

SilverStripe\Assets\Storage\DBFile:
  force_resample: true

SilverStripe\Core\Injector\Injector:
  SilverStripe\Assets\Image_Backend:
    properties:
      Quality: 70

Remap Local Elemental Extensions (Optional)

This step is necessary if you are already using an ElementalPageExtension and want to replace it with the page type provided by this module.

To remap existing App\Pages\ModularPage or ElementalPage (the class name of your custom Elemental page extension, if any), use the following configuration in your mysite.yml:

SilverStripe\ORM\DatabaseAdmin:
  classname_value_remapping:
    'App\Pages\ModularPage': 'minimalic\Fundamental\Pages\ModularPage'

Replace App\Pages\ModularPage with your class name. Also, ensure your existing table_name is ModularPage; if not, you should rename your table.

After rebuilding your database, you can delete these remap lines from your mysite.yml. Your existing Elemental pages should now use this module.

License

See License

Copyright (c) 2024, minimalic.com - Sebastian Finke All rights reserved.

silverstripe-fundamental's People

Contributors

minimalic avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.