Dotclear

source: themes/ductile/_config.php @ 515:953e6a577fce

Revision 515:953e6a577fce, 12.2 KB checked in by Franck <carnet.franck.paul@…>, 14 years ago (diff)

Rajout du choix de la couleur des titres sans lien dans le configurateur

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_CONTEXT_ADMIN')) { return; }
13
14l10n::set(dirname(__FILE__).'/locales/'.$_lang.'/admin');
15
16$sticker_images = array(
17     __('Contact') => 'sticker-contact.png',
18     __('Feed') => 'sticker-feed.png',
19     __('About') => 'sticker-about.png'
20);
21
22$fonts = array(
23     __('default') => '',
24     __('Ductile primary') => 'Ductile body',
25     __('Ductile secondary') => 'Ductile alternate',
26     __('Times New Roman') => 'Times New Roman',
27     __('Georgia') => 'Georgia',
28     __('Garamond') => 'Garamond',
29     __('Helvetica/Arial') => 'Helvetica/Arial',
30     __('Verdana') => 'Verdana',
31     __('Trebuchet MS') => 'Trebuchet MS',
32     __('Impact') => 'Impact',
33     __('Monospace') => 'Monospace'
34);
35
36function adjustFontSize($s)
37{
38     if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$s,$m)) {
39          if (empty($m[2])) {
40               $m[2] = 'em';
41          }
42          return $m[1].$m[2];
43     }
44
45     return null;
46}
47
48function adjustColor($c)
49{
50     if ($c === '') {
51          return '';
52     }
53
54     $c = strtoupper($c);
55
56     if (preg_match('/^[A-F0-9]{3,6}$/',$c)) {
57          $c = '#'.$c;
58     }
59
60     if (preg_match('/^#[A-F0-9]{6}$/',$c)) {
61          return $c;
62     }
63
64     if (preg_match('/^#[A-F0-9]{3,}$/',$c)) {
65          return '#'.substr($c,1,1).substr($c,1,1).substr($c,2,1).substr($c,2,1).substr($c,3,1).substr($c,3,1);
66     }
67
68     return '';
69}
70
71$ductile_base = array(
72     // HTML
73     'subtitle_hidden' => null,
74     // CSS
75     'body_font' => null,
76     'alternate_font' => null,
77     'blog_title_w' => null,
78     'blog_title_s' => null,
79     'blog_title_c' => null,
80     'post_title_w' => null,
81     'post_title_s' => null,
82     'post_title_c' => null,
83     'post_link_w' => null,
84     'post_link_v_c' => null,
85     'post_link_f_c' => null,
86     'blog_title_w_m' => null,
87     'blog_title_s_m' => null,
88     'blog_title_c_m' => null,
89     'post_title_w_m' => null,
90     'post_title_s_m' => null,
91     'post_title_c_m' => null,
92     'post_simple_title_c' => null
93);
94
95$ductile_user = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_style');
96$ductile_user = @unserialize($ductile_user);
97if (!is_array($ductile_user)) {
98     $ductile_user = array();
99}
100
101$ductile_user = array_merge($ductile_base,$ductile_user);
102
103$ductile_stickers_base = array(
104     array('label' => null,'url' => null,'image' => null),
105     array('label' => null,'url' => null,'image' => null),
106     array('label' => null,'url' => null,'image' => null)
107);
108
109$ductile_stickers = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_stickers');
110$ductile_stickers = @unserialize($ductile_stickers);
111if (!is_array($ductile_stickers)) {
112     $ductile_stickers = $ductile_stickers_base;
113}
114
115$conf_tab = isset($_POST['conf_tab']) ? $_POST['conf_tab'] : 'html';
116
117if (!empty($_POST))
118{
119     try
120     {
121          # HTML
122          if ($conf_tab == 'html') {
123               $ductile_user['subtitle_hidden'] = (integer) !empty($_POST['subtitle_hidden']);
124               
125               $count = 0;
126               if (!empty($_POST['sticker1_label']) && !empty($_POST['sticker1_url'])) {
127                    $ductile_stickers[$count]['label'] = $_POST['sticker1_label'];
128                    $ductile_stickers[$count]['url'] = $_POST['sticker1_url'];
129                    $ductile_stickers[$count]['image'] = $_POST['sticker1_image'];
130                    $count++;
131               }
132               if (!empty($_POST['sticker2_label']) && !empty($_POST['sticker2_url'])) {
133                    $ductile_stickers[$count]['label'] = $_POST['sticker2_label'];
134                    $ductile_stickers[$count]['url'] = $_POST['sticker2_url'];
135                    $ductile_stickers[$count]['image'] = $_POST['sticker2_image'];
136                    $count++;
137               }
138               if (!empty($_POST['sticker3_label']) && !empty($_POST['sticker3_url'])) {
139                    $ductile_stickers[$count]['label'] = $_POST['sticker3_label'];
140                    $ductile_stickers[$count]['url'] = $_POST['sticker3_url'];
141                    $ductile_stickers[$count]['image'] = $_POST['sticker3_image'];
142                    $count++;
143               }
144               for ($i = $count; $i < 3; $i++) {
145                    $ductile_stickers[$i]['label'] = null;
146                    $ductile_stickers[$i]['url'] = null;
147                    $ductile_stickers[$i]['image'] = null;
148               }
149          }
150         
151          # CSS
152          if ($conf_tab == 'css') {
153               $ductile_user['body_font'] = $_POST['body_font'];
154               $ductile_user['alternate_font'] = $_POST['alternate_font'];
155
156               $ductile_user['blog_title_w'] = (integer) !empty($_POST['blog_title_w']);
157               $ductile_user['blog_title_s'] = adjustFontSize($_POST['blog_title_s']);
158               $ductile_user['blog_title_c'] = adjustColor($_POST['blog_title_c']);
159         
160               $ductile_user['post_title_w'] = (integer) !empty($_POST['post_title_w']);
161               $ductile_user['post_title_s'] = adjustFontSize($_POST['post_title_s']);
162               $ductile_user['post_title_c'] = adjustColor($_POST['post_title_c']);
163         
164               $ductile_user['post_link_w'] = (integer) !empty($_POST['post_link_w']);
165               $ductile_user['post_link_v_c'] = adjustColor($_POST['post_link_v_c']);
166               $ductile_user['post_link_f_c'] = adjustColor($_POST['post_link_f_c']);
167         
168               $ductile_user['post_simple_title_c'] = adjustColor($_POST['post_simple_title_c']);
169         
170               $ductile_user['blog_title_w_m'] = (integer) !empty($_POST['blog_title_w_m']);
171               $ductile_user['blog_title_s_m'] = adjustFontSize($_POST['blog_title_s_m']);
172               $ductile_user['blog_title_c_m'] = adjustColor($_POST['blog_title_c_m']);
173         
174               $ductile_user['post_title_w_m'] = (integer) !empty($_POST['post_title_w_m']);
175               $ductile_user['post_title_s_m'] = adjustFontSize($_POST['post_title_s_m']);
176               $ductile_user['post_title_c_m'] = adjustColor($_POST['post_title_c_m']);
177          }
178         
179          $core->blog->settings->addNamespace('themes');
180          $core->blog->settings->themes->put($core->blog->settings->system->theme.'_style',serialize($ductile_user));
181          $core->blog->settings->themes->put($core->blog->settings->system->theme.'_stickers',serialize($ductile_stickers));
182          $core->blog->triggerBlog();
183
184          echo
185          '<div class="message"><p>'.
186          __('Theme configuration upgraded.').
187          '</p></div>';
188     }
189     catch (Exception $e)
190     {
191          $core->error->add($e->getMessage());
192     }
193}
194
195// To be deleted when adminThemeConfigManaged behaviour will be implemented in admin/blog_themes.php :
196echo '</form>';
197
198# HTML Tab
199
200echo '<div class="multi-part" id="themes-list'.($conf_tab == 'html' ? '' : '-html').'" title="'.__('Content').'">';
201
202echo '<form id="theme_config" action="blog_theme.php?conf=1" method="post" enctype="multipart/form-data">';
203
204echo '<fieldset><legend>'.__('Header').'</legend>'.
205'<p class="field"><label for="subtitle_hidden">'.__('Hide blog description:').' '.
206form::checkbox('subtitle_hidden',1,$ductile_user['subtitle_hidden']).'</label>'.'</p>'.
207'</fieldset>';
208
209echo '<fieldset><legend>'.__('Stickers').'</legend>';
210
211echo '<table id="stickerslist">'.'<caption>'.__('Stickers (footer)').'</caption>'.
212'<thead>'.
213'<tr>'.
214'<th scope="col">'.__('Position').'</th>'.
215'<th scope="col">'.__('Label').'</th>'.
216'<th scope="col">'.__('URL').'</th>'.
217'<th scope="col">'.__('Icon').'</th>'.
218'</tr>'.
219'</thead>'.
220'<tbody>'.
221'<tr>'.
222'<td scope="raw">1</td>'.
223'<td>'.form::field('sticker1_label',20,255,$ductile_stickers[0]['label']).'</td>'.
224'<td>'.form::field('sticker1_url',40,255,$ductile_stickers[0]['url']).'</td>'.
225'<td>'.form::combo('sticker1_image',$sticker_images,$ductile_stickers[0]['image']).'</td>'.
226'</tr>'.
227'<tr>'.
228'<td scope="raw">2</td>'.
229'<td>'.form::field('sticker2_label',20,255,$ductile_stickers[1]['label']).'</td>'.
230'<td>'.form::field('sticker2_url',40,255,$ductile_stickers[1]['url']).'</td>'.
231'<td>'.form::combo('sticker2_image',$sticker_images,$ductile_stickers[1]['image']).'</td>'.
232'</tr>'.
233'<tr>'.
234'<td scope="raw">3</td>'.
235'<td>'.form::field('sticker3_label',20,255,$ductile_stickers[2]['label']).'</td>'.
236'<td>'.form::field('sticker3_url',40,255,$ductile_stickers[2]['url']).'</td>'.
237'<td>'.form::combo('sticker3_image',$sticker_images,$ductile_stickers[2]['image']).'</td>'.
238'</tr>'.
239'</tbody>'.
240'</table>';
241
242echo '</fieldset>';
243
244echo '<input type="hidden" name="conf_tab" value="html">';
245echo '<p class="clear"><input type="submit" value="'.__('Save').'" />'.$core->formNonce().'</p>';
246echo '</form>';
247
248echo '</div>'; // Close tab
249
250# CSS tab
251
252echo '<div class="multi-part" id="themes-list'.($conf_tab == 'css' ? '' : '-css').'" title="'.__('Presentation').'">';
253
254echo '<form id="theme_config" action="blog_theme.php?conf=1" method="post" enctype="multipart/form-data">';
255
256echo '<h3>'.__('General settings').'</h3>';
257
258echo '<fieldset><legend>'.__('Fonts').'</legend>'.
259'<p class="field"><label for="body_font">'.__('Main:').' '.
260form::combo('body_font',$fonts,$ductile_user['body_font']).'</label></p>'.
261
262'<p class="field"><label for="alternate_font">'.__('Secondary:').' '.
263form::combo('alternate_font',$fonts,$ductile_user['alternate_font']).'</label></p>'.
264'</fieldset>';
265
266echo '<div class="two-cols">';
267echo '<div class="col">';
268
269echo '<fieldset><legend>'.__('Blog title').'</legend>'.
270'<p class="field"><label for="blog_title_w">'.__('In bold:').' '.
271form::checkbox('blog_title_w',1,$ductile_user['blog_title_w']).'</label>'.'</p>'.
272
273'<p class="field"><label for="blog_title_s">'.__('Font size (in em by default):').'</label> '.
274form::field('blog_title_s',7,7,$ductile_user['blog_title_s']).'</p>'.
275
276'<p class="field picker"><label for="blog_title_c">'.__('Color:').'</label> '.
277form::field('blog_title_c',7,7,$ductile_user['blog_title_c'],'colorpicker').'</p>'.
278'</fieldset>';
279
280echo '</div>';
281echo '<div class="col">';
282
283echo '<fieldset><legend>'.__('Post title').'</legend>'.
284'<p class="field"><label for="post_title_w">'.__('In bold:').' '.
285form::checkbox('post_title_w',1,$ductile_user['post_title_w']).'</label>'.'</p>'.
286
287'<p class="field"><label for="post_title_s">'.__('Font size (in em by default):').'</label> '.
288form::field('post_title_s',7,7,$ductile_user['post_title_s']).'</p>'.
289
290'<p class="field picker"><label for="post_title_c">'.__('Color:').'</label> '.
291form::field('post_title_c',7,7,$ductile_user['post_title_c'],'colorpicker').'</p>'.
292'</fieldset>';
293
294echo '</div>';
295echo '</div>';
296
297echo '<fieldset><legend>'.__('Titles without link').'</legend>'.
298
299'<p class="field picker"><label for="post_simple_title_c">'.__('Color:').'</label> '.
300form::field('post_simple_title_c',7,7,$ductile_user['post_simple_title_c'],'colorpicker').'</p>'.
301'</fieldset>';
302
303echo '<fieldset><legend>'.__('Inside posts links').'</legend>'.
304'<p class="field"><label for="post_link_w">'.__('In bold:').' '.
305form::checkbox('post_link_w',1,$ductile_user['post_link_w']).'</label>'.'</p>'.
306
307'<p class="field picker"><label for="post_link_v_c">'.__('Normal and visited links color:').'</label> '.
308form::field('post_link_v_c',7,7,$ductile_user['post_link_v_c'],'colorpicker').'</p>'.
309
310'<p class="field picker"><label for="body_link_f_c">'.__('Active, hover and focus links color:').'</label> '.
311form::field('post_link_f_c',7,7,$ductile_user['post_link_f_c'],'colorpicker').'</p>'.
312'</fieldset>';
313
314echo '<h3>'.__('Mobile specific settings').'</h3>';
315
316echo '<div class="two-cols">';
317echo '<div class="col">';
318
319echo '<fieldset><legend>'.__('Blog title').'</legend>'.
320'<p class="field"><label for="blog_title_w_m">'.__('In bold:').' '.
321form::checkbox('blog_title_w_m',1,$ductile_user['blog_title_w_m']).'</label>'.'</p>'.
322
323'<p class="field"><label for="blog_title_s_m">'.__('Font size (in em by default):').'</label> '.
324form::field('blog_title_s_m',7,7,$ductile_user['blog_title_s_m']).'</p>'.
325
326'<p class="field picker"><label for="blog_title_c_m">'.__('Color:').'</label> '.
327form::field('blog_title_c_m',7,7,$ductile_user['blog_title_c_m'],'colorpicker').'</p>'.
328'</fieldset>';
329
330echo '</div>';
331echo '<div class="col">';
332
333echo '<fieldset><legend>'.__('Post title').'</legend>'.
334'<p class="field"><label for="post_title_w_m">'.__('In bold:').' '.
335form::checkbox('post_title_w_m',1,$ductile_user['post_title_w_m']).'</label>'.'</p>'.
336
337'<p class="field"><label for="post_title_s_m">'.__('Font size (in em by default):').'</label> '.
338form::field('post_title_s_m',7,7,$ductile_user['post_title_s_m']).'</p>'.
339
340'<p class="field picker"><label for="post_title_c_m">'.__('Color:').'</label> '.
341form::field('post_title_c_m',7,7,$ductile_user['post_title_c_m'],'colorpicker').'</p>'.
342'</fieldset>';
343
344echo '</div>';
345echo '</div>';
346
347echo '<input type="hidden" name="conf_tab" value="css">';
348echo '<p class="clear"><input type="submit" value="'.__('Save').'" />'.$core->formNonce().'</p>';
349echo '</form>';
350
351echo '</div>'; // Close tab
352
353// To be deleted when adminThemeConfigManaged behaviour will be implemented in admin/blog_themes.php :
354echo '<form style="display:none">';
355
356?>
Note: See TracBrowser for help on using the repository browser.

Sites map