Magnolia-cms(二):建立hello Mognolia
本文將介紹如何建立一個基礎的專案。按照國際慣例,先從hello Mognolia開始。下面是效果圖:
在上一講中,已經安裝並配置好了Mognolia-bundle,目錄結構為tomcat+light-modules。
建立專案
進入light-modules,在該位置開啟cmd,輸入
mgnl create-light-module your-project-name
建立完的專案可以被cms自動註冊,在管理頁面的web DEV中的resource file中檢視。
建立完成後的目錄結構如下圖所示:
注:特殊字元無法作為專案名稱,如é, à, ç, ä, ö, ü與/ \等。
建立模板
在本節中,您將在模組中建立一個簡單的頁面模板,頁面模板將很簡單,因為它不會允許您將可編輯元件新增到頁面。
從一個靜態頁面開始
在/your-project/templates/pages/hello.html中,插入以下程式碼:
複製下面的CSS並儲存為/hello-magnolia/webresources/css/hello-style.css。我們在HTML頁面中引用這個樣式表,之後在FreeMarker模板指令碼中引用。<!DOCTYPE html> <html xml:lang="en" lang="en"> <head> <title>Starter Page</title> <link rel="stylesheet" type="text/css" href="../../webresources/css/hello-style.css" media="all" /> </head> <body> <div class="container"> <h1>hello works!</h1> </div> </body> </html>
你可以通過http://localhost:8080/magnoliaAuthor/.resources/hello-magnolia/templates/pages/hello.html來預覽網頁效果。@import url(//fonts.googleapis.com/css?family=Raleway); body { padding: 20px; font-family: Raleway, Helvetica, Arial, Tahoma, Verdana, sans-serif; background-color: #1e5799; background-attachment: fixed; } .container { width: 100%; max-width: 960px; margin: 0px auto; padding: 20px; box-sizing: border-box; background-color: white; } main { padding: 20px; margin-bottom: 40px; } h1 { font-size: 4em; font-family: Raleway, Helvetica, Arial, Tahoma, Verdana, sans-serif; font-weight: normal; background-color: #f6f6f6; padding: 30px 0 30px 15px; margin: 0; } blockquote { margin-bottom:40px; margin-top: 65px; } blockquote cite { padding-left:20px; font-size: 1.3em; color: #333; } blockquote p { border: 5px solid #0066aa; border-radius: 12px; padding: 25px 15px; position: relative; background-color: #fff; margin-bottom: 30px; } /** Add the bottom triangle for the quote bubble using CSS **/ blockquote p:before, blockquote p:after { position: absolute; display: block; border-style: solid; content: ""; height: 0; width :0; box-sizing: border-box; } blockquote p:before { left: 20px; bottom: -30px; border-color: transparent #0066aa transparent transparent; border-width: 0 30px 30px 0; } blockquote p:after { left: 29px; bottom: -15px; border-color: transparent #fff transparent transparent; border-width: 0 15px 15px 0; }
建立一個頁面模板指令碼
將該靜態HTML文件重新命名hello.html為 hello.ftl。該擴充套件 .ftl 將檔案轉換為處理的FreeMarker指令碼。編輯指令碼,使最終結果如下所示(更改列表如下所示):
<!DOCTYPE html>
<html xml:lang="${cmsfn.language()}" lang="${cmsfn.language()}">
<head>
[@cms.page /]
<title>${content.windowTitle!content.title!}</title>
<link rel="stylesheet" type="text/css" href="${ctx.contextPath}/.resources/hello-magnolia/webresources/css/hello-style.css" media="all" />
</head>
<body>
<div class="container">
<h1>${content.windowTitle!content.title!} works!</h1>
</div>
</body>
</html>
變化:第2行:en用${cmsfn.language()}函式替換以設定lang屬性的值。如果您決定將網頁本地化為更多的語言,這將確保頁面的主要語言將被正確呈現。
第4行:[@cms.page /]作為新行插入。該指令新增工具欄並使頁面屬性對話方塊可用。您將在建立頁面模板定義後立即為該對話方塊建立定義。
第5行:用${content.windowTitle!content.title!}指令替換靜態詞語“Starter頁面” 。<title>元素的內容然後將從JCR儲存庫中檢索。
第6行:更改了要使用的CSS引用 ${ctx.contextPath}。在渲染過程中建立頁面時,我們需要知道資源的絕對路徑。該指令確保作者和公共例項上的資源路徑完整且正確。
第11行:<h1/>用${content.windowTitle!content.title!}指令替換元素中 的單詞“hello”,使用頁面屬性的內容動態地呈現頁面標題的第一部分。
建立一個頁面模板定義
在該目錄下建立/hello-magnolia/templates/pages/hello.yaml 檔案,並寫入以下:
title:
hello
templateScript:
/hello-magnolia/templates/pages/hello.ftl
renderType:
freemarker
dialog:
hello-magnolia
:
pages/hello
visible:
true
建立一個頁面元件定義
在/hello-magnolia/dialogs/pages/目錄下建立hello.yaml檔案,並寫入以下程式碼: form:label: Page properties
tabs:
- name: tabMain
label: hello
fields:
- name: title
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
i18n: true
label: title
- name: windowTitle
class: info.magnolia.ui.form.field.definition.TextFieldDefinition
i18n: true
label: window title
actions:
commit:
class: info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition
cancel:
class: info.magnolia.ui.admincentral.dialog.action.CancelDialogActionDefinition
使用該模板建立一個頁面
準備工作已經基本完成,可以在Author例項中建立一個頁面釋出到公共例項中了。 1.開啟Magnolia控制檯,點選Pages 2.選擇add a pages,建立一個新的頁面 3.選擇hello模板作為頁面模板,然後點選下一步 4.在頁面屬性框中輸入Hello Magnolia到田間標題和視窗標題 5.點選儲存 6.接著你可以預覽你的網頁了,或者點選publish,就可以在http://localhost:8080/magnoliaPublic/hello.html中檢視你的網頁了以上就是簡單建立一個頁面模板的操作步驟了。
相關推薦
Magnolia-cms(二):建立hello Mognolia
本文將介紹如何建立一個基礎的專案。按照國際慣例,先從hello Mognolia開始。下面是效果圖: 在上一講中,已經安裝並配置好了Mognolia-bundle,目錄結構為tomcat+light-modules。 建立專案 進入light-modules,在該位置
scrapy爬蟲框架(二):建立一個scrapy爬蟲
在建立新的scrapy爬蟲之前,我們需要先了解一下建立一個scrapy爬蟲的基本步驟 一、確定要爬取的資料 以爬取豆瓣電影資料為例: 每部電影所要爬取的資訊有: 片名:《頭號玩家》 導演: 史蒂文·斯皮爾伯格 編劇: 扎克·佩恩 / 恩斯特·克萊
React Native在window下的環境搭建(二):建立新專案
React Native建立一個新專案: react-native init TestAndroidApp提示:你可以使用--version引數(注意是兩個槓)建立指定版本的專案。例如react-native init TestAndroidApp --version 0.44.3。注意版本號必須精確
2 Lucene筆記(二):建立LuceneUtils工具
publicclass LuceneUtils { public LuceneUtils() {} private static Directory directory; private static Version versio
Composer筆記(二):建立自己的PHP類庫
一、在建立類庫之前,你必須有一個github的賬號,作為程式碼託管,github是非常好的一個選擇 >github主頁:https://github.com 二、在windows下載並安裝gi
webpack4系列教程(二):建立專案,打包第一個JS檔案
傳送門: webpack4系列教程(一):初識webpack 1. 建立專案 1.1 初始化一個專案 首先安裝nodejs,開啟 nodeJs官網 直接下載安裝即可,安裝完畢後開啟命令列工具,進入你的專案資料夾,執行 npm init 進
Hyperledger Fabric開發(二):建立網路
執行fabric-samples專案中的一個例子:first-network,建立第一個網路(Building Your First Network)。 該網路共有4個peer節點,劃分為2個組織(organizations),以及1個單獨的orde
activiti自定義流程之Spring整合activiti-modeler5.16例項(二):建立流程模型
1.maven導包,這裡就沒有什麼多的好說了,直接程式碼: <dependencies> <dependency> <groupId>junit</groupId> <artifact
Power BI學習筆記(二):建立第一個報表
大家好,我又回來辣~上次的文章給大家簡單介紹了一下Power BI,提供了各種材料的傳送門和Power BI的安裝方式。還沒搞定安裝的同學們,請點選【傳送門】。那麼今天就和大家一起使用Power BI製作第一張資料報表。############################
手把手做一個JSP入門程式(二):建立一個專案(JSP)
建立一個專案 我們使用Eclipse和Web伺服器的Tomcat進行開發。Eclipse我們需要用“Eclipse IDE for Java EE Developers”(Eclipse為java EE 開發者準備的一個IDE工具),可以點選這裡到官網下載最新
ASP.NET Core系列(二):建立第一個.Net Core 專案
前面講過 .NET Core簡介及開發環境安裝,本章會講一講ASP.NET Core 2.0的專案結構,檢視完整的ASP.NET Core系列文章:https://www.cnblogs.com/zhangweizhong/category/1477144.html 新建專案 新建專案,
RabbitMQ消息隊列(二):”Hello, World“
復雜 article ins don title apple lar github publish 本文將使用Python(pika 0.9.8)實現從Producer到Consumer傳遞數據”Hello, World“。 首先復習一下上篇所學:RabbitM
Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立
Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立 通過本文章實現: 瞭解Django中Template的使用 讓HTML、CSS等參與網頁建立 利用靜態檔案應用網頁樣式 一、Template的使用 Template是Django利用渲染器將模板檔案與資料內容結合
Java設計模式(二)之建立型模式:抽象工廠模式
例子背景: 隨著客戶的要求越來越高,寶馬車需要不同配置的空調和發動機等配件。於是這個工廠開始生產空調和發動機,用來組裝汽車。這時候工廠有兩個系列的產品:空調和發動機。寶馬320系列配置A型號空調和A型號發動機,寶馬230系列配置B型號空調和B型號發動機。 一、概念:
RabbitMq的學習(二):Java建立簡單的生產者,消費者
官方文件說的很詳細,但是再詳細也要動手操作一番,畢竟動手操作的時候,才會給自己挖坑。 使用環境: RabbitMq版本:3.7.8 jdk環境:1.8 一、引入maven架包 <dependency> <groupId>com.r
RabbitMQ訊息佇列(二):”Hello, World“
原文地址:http://blog.csdn.net/anzhsoft/article/details/19570187 本文將使用Python(pika 0.9.8)實現從Producer到Consumer傳遞資料”Hello, World“。 首先複習一下上篇所學:RabbitMQ實現
Docker(二):Docker常用命令之映象的建立:Dockerfile 與 commit
從鏡像倉庫下載的映象,都是別人事先做好的。如果需要一個定製的映象,就必須得自己動手了。自己建立一個映象有2種方式:a、使用commit命令基於一個現有的映象來修改。本質上並不是新建一個映象,而是基於一個已有的基礎映象進行修改。b、基於Dockerfile來建立
大資料:Spark Standalone 叢集排程(二)如何建立、分配Executors的資源
Standalone 的整體架構 在Spark叢集中的3個角色Client, Master, Worker, 下面的圖是Client Submit 一個任務的流程圖: 完整的流程:Driver 提交任務給Master, 由Master節點根據任務的引數對進行Worker
從零開始建立uCosIII專案(二):配置uCosIII
新增BSP檔案 新建BSP.h檔案,內容如下 #ifndef _BSP_H_ #define _BSP_H_ #include <stdarg.h> #include <stdio.h> #include <cpu.h> #i
建造者模式-Builder Pattern 複雜物件的組裝與建立——建造者模式(二):遊戲角色設計的建造者模式解決方案
8.3 完整解決方案 Sunny公司開發人員決定使用建造者模式來實現遊戲角色的建立,其基本結構如圖8-3所示: 圖8-3 遊戲角色建立結構圖 在圖8-3中,Ac