ระหว่างที่กำลังตามหา CMS ที่ใช้กับ MongoDB ก็ไปพบกับเจ้า LocomotiveCMS เข้าจากการที่ดูคร่าวๆ ก็ถือว่าดูดีกว่าหลายตัวที่พบมา document ดูใช้ได้ หน้าตาเว็บก็ดูดีทีเดียว เลยเลือกมาลองใช้ดูซักหน่อย ด้วยความที่พัฒนามาจาก Ruby on Rails และมีแนวคิดที่ค่อนข้างแต่ต่างกับ CMS ตัวอื่นๆ เช่น Drupal, Wordpress, Joomla เลยอยากเขียนบันทึกไว้สักหน่อย เผื่อจะมีประโยชน์กับคนอื่นๆ
ดองไว้นานแล้ว รู้สึกใช้ไปใช้มาแล้วมันไม่ใช่ ขอตัดจบแค่นี้เลยแล้วกัน
1. จุดเริ่มต้น
LocomotiveCMS ก็เหมือนกับโครงการโอเพ่นซอร์สอื่นๆ ที่ล้วนเกิดจากความต้องการของนักพัฒนาเผื่อที่จะสร้างสิ่งที่ตอบสนองกับความต้องการของตนเองและเป็นสิ่งที่ยังไม่มีอยู่ในท้องตลาด
มาดูความต้องการเริ่มต้นของเค้ากันครับ
- ต้องสามารถสร้าง multi-site ได้ด้วย instance เดียว
- content editor ต้องไม่ใช้ความพยายามมากนักในการจัดการ template ที่อาจทำให้ เว็บไซต์พังได้
- ไม่จำเป็นต้องใช้ความรู้ Ruby on Rails
- ต้องสามารถพัฒนาต่อยอดหรือปรับแต่งได้อย่างสวยงาม
- หลังบ้านต้องแหล่ม!
- ต้องไม่มี code smell
2. ฟีเจอร์พื้นฐาน
- Multi sites
- Flexible content types
- Front-end inline editing (Aloha editor)
- Content localization
- Restful API
- Haml / Sass
- Liquid templating langage
3. ทดลองใช้
วิธีลองติดตั้งง่ายๆ ก็ใช้ heroku จะรวดเร็วกว่า สมมติว่าติดตั้งเสร็จเรียบร้อยแล้ว :) เราไปต่อกันเลย
3.1 layout
layout ของ Rails แอพโดยปกติจะเป็นแบบนี้
+- Views
+- layout
+- application
+- mysite
+- index
+- first page
+- second page
แต่ของ LocomotiveCMS จะเป็นแบบนี้
+- Pages
+- index
+- first page
+- second page
index จะเปรียบเสมือน master layout ของเพจ (ใช้ Liquid template)
<html>
<head>
<title>My index page</title>
</head>
<body>
<header>
layout header
</header>
<div id="content">
{% block content %}
the content of the index page
{% endblock %}
</div>
<footer>
layout footer
</footer>
</body>