1. 程式人生 > >Magnolia-cms(二):建立hello Mognolia

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中,插入以下程式碼:

<!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>
複製下面的CSS並儲存為/hello-magnolia/webresources/css/hello-style.css。我們在HTML頁面中引用這個樣式表,之後在FreeMarker模板指令碼中引用。
@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;
}
你可以通過http://localhost:8080/magnoliaAuthor/.resources/hello-magnolia/templates/pages/hello.html來預覽網頁效果。

建立一個頁面模板指令碼

 將該靜態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實現

DockerDocker常用命令之映象的建立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