Discover a theme designed for harmony — perfect for eco projects, nature blogs, and mindful living websites. Zen is more than a style — it's a way of seeing the world.
System Features w Concrete CMS to mechanizm, który grupuje funkcjonalności tematyczne, rozwiązując typowe problemy związane z blokami i tematami. Zanim zagłębimy się w szczegóły implementacji, warto zrozumieć, jakie wyzwania ten system rozwiązuje.
Features to logiczne grupowanie wspólnych funkcjonalności, które zapewniają ładowanie niezbędnych plików JS i CSS tylko wtedy, gdy są potrzebne. Oto kluczowe elementy systemu:
Bloki rejestrują wymagane Features poprzez interfejs UsesFeatureInterface
. Na przykład:
Klasa Concrete\Core\Feature\Features
zawiera listę wszystkich głównych Features jako stałe, które można wykorzystać w kodzie.
Jeśli temat nie obsługuje określonej Feature, system używa domyślnych zasobów JS i CSS wbudowanych w Concrete CMS. Na przykład, dla Feature Imagery domyślnym zasobem jest concrete/js/features/imagery/frontend.js
.
Tematy mogą określić, które Features obsługują, co eliminuje potrzebę ładowania domyślnych zasobów. Na przykład:
public function getThemeSupportedFeatures() {
return [
Features::BASICS,
Features::TYPOGRAPHY,
Features::IMAGERY,
];
}
Używanie BedrockThemeTrait
w klasie PageTheme
automatycznie obsługuje Features Basics i Typography. Tematy mogą rozszerzyć tę funkcjonalność, dodając wsparcie dla dodatkowych Features.
Dodanie obsługi Feature Imagery do tematu pozwala na:
W klasie PageTheme
zaimplementuj metodę getThemeSupportedFeatures()
:
use Concrete\Core\Feature\Features;
public function getThemeSupportedFeatures() {
return [
Features::BASICS,
Features::TYPOGRAPHY,
Features::IMAGERY,
];
}
_imagery.scss
w assets/scss/features/imagery
main.scss
, aby importował _imagery.scss
// W pliku _imagery.scss
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/lightbox/lightbox';
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/gallery/gallery';
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/hero-image';
assets/js/main.js
import '@concretecms/bedrock/assets/imagery/js/frontend';
npm i simple-parallax-js
Utwórz plik _hero-image.scss
i dostosuj styl bloku Hero Image:
.ccm-block-hero-image {
.ccm-block-hero-image-text {
color: $body-bg;
font-size: 2rem;
}
}
W pliku main.js
dodaj:
import simpleParallax from 'simple-parallax-js';
var images = document.querySelectorAll('.ccm-block-hero-image-image');
new simpleParallax(images, {scale: 1.5});
npm i owl.carousel
npm i animate.css
W main.js
:
import 'magnific-popup'
import '@concretecms/bedrock/assets/imagery/js/frontend/lightbox'
import '@concretecms/bedrock/assets/imagery/js/frontend/gallery'
// Owl Carousel
import 'owl.carousel'
$(".owl-carousel").owlCarousel({
// Konfiguracja Owl Carousel
});
W _imagery.scss
:
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/lightbox/lightbox';
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/gallery/gallery';
@import '~@concretecms/bedrock/assets/imagery/scss/frontend/hero-image';
// Owl Carousel
@import "~animate.css/animate";
@import "~owl.carousel/dist/assets/owl.carousel";
@import "~owl.carousel/dist/assets/owl.theme.default";
Utwórz plik application/themes/twoj_temat/blocks/image_slide/view.php
z odpowiednim znacznikiem HTML dla Owl Carousel.
System Features w Concrete CMS zapewnia elastyczny sposób organizowania i dostosowywania funkcjonalności bloków przy jednoczesnym zachowaniu optymalnej wydajności. Dzięki niemu:
Wdrażając system Features w swoim temacie, zyskujesz pełną kontrolę nad wyglądem i działaniem bloków, jednocześnie utrzymując wydajność i spójność Twojej witryny.
Klasa Features
w podanym kodzie PHP to rejestr (registry) służący do definiowania i organizowania cech (features) używanych przez system bloków i zasobów w Concrete CMS. Ta klasa zawiera stałe (const
), które reprezentują różne funkcje systemu, zarówno podstawowe, jak i dodatkowe. Oto szczegóły:
Cel: Klasa Features
została zaprojektowana jako centralne miejsce do definiowania funkcji wspieranych przez system. Dzięki temu:
Podział funkcji:
Każda stała reprezentuje unikalną funkcję systemu i jej identyfikator (np. PAGES
, FILES
).
CALENDAR
).Podsumowując, klasa Features
służy jako centralne miejsce do definiowania i zarządzania funkcjami systemu, umożliwiając elastyczność i modularność w Concrete CMS.