| 1 |
lars |
1 |
<com:TContent ID="Main">
|
|
|
2 |
|
|
|
3 |
<h1>Menggunakan Tema dan Skin</h1>
|
|
|
4 |
|
|
|
5 |
<p>
|
|
|
6 |
PRADO memiliki dukungan dasar untuk <a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.Themes">tema</a>. Dengan menggunakan tema, kita dapat memisahkan logika dan penyajian secara lebih baik, dan kita juga bisa mengubah penampilan keseluruhan pada sistem blog kita jauh lebih mudah.
|
|
|
7 |
</p>
|
|
|
8 |
|
|
|
9 |
<h2>Membuat Tema</h2>
|
|
|
10 |
|
|
|
11 |
<p>
|
|
|
12 |
Pertama kita buat direktori baru bernama <tt>themes</tt>. Ini adalah direktori leluhur bagi semua tema terkait aplikasi PRADO tertentu. Setiap subdirektori di bawah direktori ini yang nama temanya adalah nama subdirektori.
|
|
|
13 |
</p>
|
|
|
14 |
|
|
|
15 |
<p>
|
|
|
16 |
Untuk membuat tema bernama <tt>Basic</tt>, kita membuat subdirektori <tt>theme/Basic</tt>. Di bawah direktori ini, kita dapat menempatkan file stylesheet dependen-tema, file Javascript, gambar, dan file skin.
|
|
|
17 |
</p>
|
|
|
18 |
|
|
|
19 |
<com:InfoBox>
|
|
|
20 |
Direktori <tt>themes</tt> harus bisa diakses dari Web, seperti halnya direktori <tt>assets</tt>. Jangan menempatkan file data sensitif di bawah direktori ini. Anda bisa mengubah nama atau lokasi dari direktori ini dengan mengkonfigurasi modul <a href="http://www.pradosoft.com/docs/classdoc/TThemeManager">TThemeManager</a> dalam konfigurasi aplikasi.
|
|
|
21 |
</com:InfoBox>
|
|
|
22 |
|
|
|
23 |
|
|
|
24 |
<h3>Membuat File Stylesheet</h2>
|
|
|
25 |
|
|
|
26 |
<p>
|
|
|
27 |
Di bawah direktori <tt>themes/Basic</tt>, kita membuat sebuah file CSS stylesheet bernama <tt>style.css</tt>. ketika sebuah halaman menggunakan tema ini, PRADO secara otomatis akan mengimpor stylesheet ini ke halaman. Hal yang sama terjadi untuk file Javascript.
|
|
|
28 |
</p>
|
|
|
29 |
|
|
|
30 |
<p>
|
|
|
31 |
File CSS ditampilkan seperti berikut.
|
|
|
32 |
</p>
|
|
|
33 |
|
|
|
34 |
<com:TTextHighlighter CssClass="source">
|
|
|
35 |
body {
|
|
|
36 |
font-family: verdana, 'trebuchet ms', sans-serif;
|
|
|
37 |
font-size: 10pt;
|
|
|
38 |
background: white;
|
|
|
39 |
}
|
|
|
40 |
#page {
|
|
|
41 |
margin: 0 auto 0 auto;
|
|
|
42 |
width: 600px;
|
|
|
43 |
}
|
|
|
44 |
#footer {
|
|
|
45 |
text-align: center;
|
|
|
46 |
margin-top: 10px;
|
|
|
47 |
padding: 10px;
|
|
|
48 |
border-top: 1px solid silver;
|
|
|
49 |
}
|
|
|
50 |
.post-box {
|
|
|
51 |
margin-bottom: 10px;
|
|
|
52 |
padding: 5px;
|
|
|
53 |
}
|
|
|
54 |
.post-box h3 {
|
|
|
55 |
padding: 5px;
|
|
|
56 |
font-size: 13pt;
|
|
|
57 |
background: lightgray;
|
|
|
58 |
}
|
|
|
59 |
.post-box a {
|
|
|
60 |
color: black;
|
|
|
61 |
text-decoration: none;
|
|
|
62 |
}
|
|
|
63 |
.post-box a:hover {
|
|
|
64 |
color: red;
|
|
|
65 |
}
|
|
|
66 |
</com:TTextHighlighter>
|
|
|
67 |
|
|
|
68 |
|
|
|
69 |
<h3>Membuat File Skin</h2>
|
|
|
70 |
|
|
|
71 |
<p>
|
|
|
72 |
Kita menggunakan skin untuk menginisialisasi properti kontrol PRADO. Skin disimpan sebagai file skin (nama berakhiran <tt>.skin</tt>) di bawah direktori tema. Setiap file skin bisa berisi multipel skin untuk satu atau beberapa tipe kontrol.
|
|
|
73 |
</p>
|
|
|
74 |
|
|
|
75 |
<p>
|
|
|
76 |
Sebagai pengujian, kita akan mencoba membuat sebuah skin yang mengubah warna latar belakang link tombol dalam footer halaman. Kita membuat sebuah file bernama <tt>button.skin</tt> di bawah direktori tema <tt>themes/Basic</tt>.
|
|
|
77 |
</p>
|
|
|
78 |
|
|
|
79 |
<com:TTextHighlighter CssClass="source" Language="prado">
|
|
|
80 |
<com:THyperLink SkinID="MainMenu" BackColor="lightgreen" />
|
|
|
81 |
</com:TTextHighlighter>
|
|
|
82 |
|
|
|
83 |
<p>
|
|
|
84 |
File skin <tt>button.skin</tt> hanya berisi satu skin untuk kontrol <tt>THyperLink</tt> yang properti <tt>SkinID</tt>-nya adalah <tt>MainMenu</tt>. Skin menyetel warna latar belakang kontrol ke hijau-terang.
|
|
|
85 |
</p>
|
|
|
86 |
|
|
|
87 |
<p>
|
|
|
88 |
Sejalan dengan itu, kita perlu memodifikasi <tt>protected/common/MainLayout.tpl</tt> agar link tombol dalam footer menggunakan <tt>MainMenu</tt> sebagai <tt>SkinID</tt>-nya.
|
|
|
89 |
</p>
|
|
|
90 |
<com:TTextHighlighter CssClass="source" Language="prado">
|
|
|
91 |
......
|
|
|
92 |
<div id="footer">
|
|
|
93 |
......
|
|
|
94 |
<com:THyperLink Text="Home" SkinID="MainMenu"
|
|
|
95 |
NavigateUrl="<%= $this->Service->DefaultPageUrl %>" />
|
|
|
96 |
|
|
|
97 |
<com:THyperLink Text="New Post" SkinID="MainMenu"
|
|
|
98 |
NavigateUrl="<%= $this->Service->constructUrl('posts.NewPost') %>"
|
|
|
99 |
Visible="<%= !$this->User->IsGuest %>" />
|
|
|
100 |
......
|
|
|
101 |
</div>
|
|
|
102 |
......
|
|
|
103 |
</com:TTextHighlighter>
|
|
|
104 |
|
|
|
105 |
<com:InfoBox>
|
|
|
106 |
Sintaks untuk file skin sangat mirip dengan template PRADO. Setiap tag <tt><com:></tt> mendefinisikan sebuah skin untuk tipe kontrol tertentu. PRADO secara otomatis mengumpulkan seluruh file skin dalam sebuah tema dan menerapkannya ketika halaman bertema sedang disajikan.
|
|
|
107 |
</com:InfoBox>
|
|
|
108 |
|
|
|
109 |
|
|
|
110 |
<h2>Menggunakan Tema</h2>
|
|
|
111 |
|
|
|
112 |
<p>
|
|
|
113 |
Untuk menggunakan tema yang baru kita buat, kita memodifikasi konfigurasi aplikasi seperti berikut. Seperti kita lihat, properti <tt>Theme</tt> untuk semua halaman disetel sebagai <tt>Basic</tt>, nama tema yang baru saja kita buat.
|
|
|
114 |
</p>
|
|
|
115 |
|
|
|
116 |
<com:TTextHighlighter CssClass="source" Language="xml">
|
|
|
117 |
......
|
|
|
118 |
<services>
|
|
|
119 |
<service id="page" class="TPageService" DefaultPage="posts.ListPost">
|
|
|
120 |
<pages MasterClass="Application.layouts.MainLayout" Theme="Basic" />
|
|
|
121 |
</service>
|
|
|
122 |
</services>
|
|
|
123 |
......
|
|
|
124 |
</com:TTextHighlighter>
|
|
|
125 |
|
|
|
126 |
<com:InfoBox>
|
|
|
127 |
Dimungkinkan untuk menetapkan tema berbeda untuk halaman yang berbeda, dan ini dapat dikerjakan baik dalam konfigurasi aplikasi/halaman ataupun secara programatis (perhatikan <tt>Theme</tt> adalah properti halaman). Untuk yan gterakhir, ia harus dikerjakan dalam metode <tt>onPreInit()</tt> pada halaman karena PRADO menerapkan tema ke halaman sebelumnya dalam masa hidup halaman.
|
|
|
128 |
</com:InfoBox>
|
|
|
129 |
|
|
|
130 |
|
|
|
131 |
<h2>Pengujian</h2>
|
|
|
132 |
<p>
|
|
|
133 |
Untuk melihat bagaimana halaman blog terlihat, kunjungi URL <tt>http://hostname/blog/index.php</tt>. Kita akan melihat font, tata letak, bingkai beruah dalam halaman. Juga, link tombol dalam footer mempunyai latar belakang hijau terang.
|
|
|
134 |
</p>
|
|
|
135 |
|
|
|
136 |
<img src="<%~ output.gif %>" class="output" />
|
|
|
137 |
|
|
|
138 |
</com:TContent>
|