Orchard Project
Logo programu | |
Autor | Outercurve Foundation |
---|---|
Pierwsze wydanie | styczeń 2011 |
Aktualna wersja stabilna | 1.8 (28 marca 2014; ponad 10 lat temu) |
Język programowania | C#, ASP.NET |
System operacyjny | Microsoft Windows |
Rodzaj | system zarządzania treścią |
Licencja | New BSD |
Strona internetowa |
Orchard Project – skalowalny, rozbudowywalny system zarządzania treścią napisany w ASP.NET MVC 3.0. Funkcjonalnością dorównuje DotNetNuke, który został napisany w czystym ASP.NET. Elastyczność narzędzia umożliwia tworzenie własnych modułów, motywów graficznych oraz layout’ów. Widoki zostały zaprojektowanie za pomocą silnika Razor, wprowadzonego w wersji ASP.NET MVC 3.0. Ponadto system jest przystosowany do pracy z Azure.
Architektura
[edytuj | edytuj kod]Podstawowe elementy
[edytuj | edytuj kod]Autorzy systemu podzieli architekturę na kilka zasadniczych części:
- Content Item – podstawowy element systemu przechowujący treść. Najczęściej skojarzony jest z konkretnym adresem URL. Przykładem Content Item jest np. blog czy pojedyncza strona do przechowywania treści.
- Content Type – typ zawartości, określa klasę Content Item’a.
- Content Part – część składowa Content Item, mająca zastosowanie dla różnych klas. W ten sposób możliwe jest wykorzystywanie wspólnej funkcjonalności (np. komentarze) dla różnych typów zawartości (blog, pojedyncza strona itp.).
- Content Field – każda zawartość może również zawierać serie pól, które potem będą wypełniane przez użytkownika systemu CMS.
Moduły
[edytuj | edytuj kod]Moduł grupuje pewną funkcjonalność. Ponadto może być wykorzystywany w różnych instancjach Orchard. Implementacje modułów umieszczone są w folderze modules a instalowane są z kolei z poziomu Orchard Gallery.
Features
[edytuj | edytuj kod]Podzbiór modułu mogący zostać włączony lub wyłączony przez użytkownika – dla modułu odpowiedzialnego za autoryzację, cechami (features) są np. implementacje wykonujące za połączenie z danym dostawcą (Google, Yahoo, Microsoft itp.).
Manifest
[edytuj | edytuj kod]Manifest stanowi prosty plik tekstowy opisująca dany moduł. Umożliwia to wyświetlenie stosownych informacji przez Orchard Gallery. Przykład:
Name: Comments
AntiForgery: enabled
Author: The Orchard Team
Website: http://orchardproject.net
Version: 0.9.0
OrchardVersion: 0.9.0
Description: The comments system implemented by this module can be applied to arbitrary Orchard content types, such as blogs and pages. It includes comment validation and spam protection through the Akismet service.
Features:
Orchard.Comments:
Name: Comments
Description: Standard content item comments.
Dependencies: Settings
Category: Social
Motywy graficzne
[edytuj | edytuj kod]Orchard oddziela warstwę prezentacji od pozostałej części systemu. Motywy są ogólnym określeniem dla wyglądu strony.
Layout
[edytuj | edytuj kod]Layout określa rozmieszczenie poszczególnych elementów na stronie (stopka, nagłówek itp.).
Szablony
[edytuj | edytuj kod]Szablon jest odpowiedzialny za transformacje danych do postaci HTML. Orchard CMS definiuje szablony za pomocą Razor:
<h1>@Model.PageName</h1>
Kształt
[edytuj | edytuj kod]Wszystkie dane zanim zostaną wyrenderowane zostają najpierw skonwertowane do obiektów Shape, które następnie tworzą abstrakcyjne drzewo – ułatwia to zarządzanie poszczególnymi częściami.
Placement file
[edytuj | edytuj kod]Pliki służą do ustawienia kolejności poszczególnych części w zawartości np.:
<Placement>
<Match DisplayType="Detail">
<Place Parts_Tags_ShowTags="Footer:1"/>
</Match>
<Match DisplayType="Summary">
<Place Parts_Tags_ShowTags="Footer:4"/>
<Place Parts_Comments_Count="Footer:5" />
</Match>
</Placement>
Strefy i widgety
[edytuj | edytuj kod]Strefy są kontenerami na tzw. widgety, które stanowią pewne wspólne elementy graficzne i funkcjonalne mogące zostać doczepione w różnych miejscach strony.
Warstwy
[edytuj | edytuj kod]Warstwy definiują, kiedy i dla kogo dany widget powinien zostać wyświetlony. Domyślnie zostały utworzone następujące warstwy: Default, Authenticated, Anonymous, Disabled czy TheHomepage. Na przykład Anonymous określa jakie widgety powinny być widoczne dla niezalogowanych użytkowników.
Bezpieczeństwo
[edytuj | edytuj kod]Orchard dostarcza klasyczny system autoryzacji oparty na rolach i użytkownikach. Domyślnie zostały zdefiniowane następujące role:
- administrator – pełna kontrola nad zawartością i wszelkimi ustawieniami,
- redaktor – nie może tworzyć nowej zawartości (Content Item) ale może edytować oraz publikować treść stworzoną przez autorów,
- moderator – sprawdza zawartość stworzoną przez użytkowników – np. moderuje komentarze,
- autor – może publikować treść (ale wyłącznie swoją),
- współpracownik (contributor) – może pisać treść ale niekoniecznie ma prawa do jej publikacji,
- anonimowy – użytkownik niezalogowany,
- zalogowany.