blog->settings->system->themes_url.'/'.$core->blog->settings->system->theme.'/img/'; $img_path = dirname(__FILE__).'/img/'; $list_types = array( __('Title') => 'title', __('Short') => 'short', __('Full') => 'full' ); $contexts = array( 'default' => __('Home (first page)'), 'default-page' => __('Home (other pages)'), 'category' => __('Entries for a category'), 'tag' => __('Entries for a tag'), 'search' => __('Search result entries'), 'archive' => __('Month archive entries') ); $sticker_images = array( __('Contact') => 'sticker-contact.png', __('Feed') => 'sticker-feed.png', __('About') => 'sticker-about.png' ); $fonts = array( __('default') => '', __('Ductile primary') => 'Ductile body', __('Ductile secondary') => 'Ductile alternate', __('Times New Roman') => 'Times New Roman', __('Georgia') => 'Georgia', __('Garamond') => 'Garamond', __('Helvetica/Arial') => 'Helvetica/Arial', __('Verdana') => 'Verdana', __('Trebuchet MS') => 'Trebuchet MS', __('Impact') => 'Impact', __('Monospace') => 'Monospace' ); function adjustFontSize($s) { if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$s,$m)) { if (empty($m[2])) { $m[2] = 'em'; } return $m[1].$m[2]; } return null; } function adjustColor($c) { if ($c === '') { return ''; } $c = strtoupper($c); if (preg_match('/^[A-F0-9]{3,6}$/',$c)) { $c = '#'.$c; } if (preg_match('/^#[A-F0-9]{6}$/',$c)) { return $c; } if (preg_match('/^#[A-F0-9]{3,}$/',$c)) { 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); } return ''; } $ductile_base = array( // HTML 'subtitle_hidden' => null, // CSS 'body_font' => null, 'alternate_font' => null, 'blog_title_w' => null, 'blog_title_s' => null, 'blog_title_c' => null, 'post_title_w' => null, 'post_title_s' => null, 'post_title_c' => null, 'post_link_w' => null, 'post_link_v_c' => null, 'post_link_f_c' => null, 'blog_title_w_m' => null, 'blog_title_s_m' => null, 'blog_title_c_m' => null, 'post_title_w_m' => null, 'post_title_s_m' => null, 'post_title_c_m' => null, 'post_simple_title_c' => null ); $ductile_lists_base = array( 'default' => null, 'default-page' => null, 'category' => null, 'tag' => null, 'search' => null, 'archive' => null ); $ductile_counts_base = array( 'default' => null, 'category' => null, 'tag' => null, 'search' => null ); $ductile_user = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_style'); $ductile_user = @unserialize($ductile_user); if (!is_array($ductile_user)) { $ductile_user = array(); } $ductile_user = array_merge($ductile_base,$ductile_user); $ductile_lists = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_entries_lists'); $ductile_lists = @unserialize($ductile_lists); if (!is_array($ductile_lists)) { $ductile_lists = $ductile_lists_base; } $ductile_counts = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_entries_counts'); $ductile_counts = @unserialize($ductile_counts); if (!is_array($ductile_counts)) { $ductile_counts = $ductile_counts_base; } $ductile_stickers = $core->blog->settings->themes->get($core->blog->settings->system->theme.'_stickers'); $ductile_stickers = @unserialize($ductile_stickers); $ductile_stickers_full = array(); // Get all sticker images already used if (is_array($ductile_stickers)) { foreach ($ductile_stickers as $v) { $ductile_stickers_full[] = $v['image']; } } // Get all sticker-*.png in img folder of theme $ductile_stickers_images = files::scandir($img_path); if (is_array($ductile_stickers_images)) { foreach ($ductile_stickers_images as $v) { if (preg_match('/^sticker\-(.*)\.png$/',$v)) { if (!in_array($v,$ductile_stickers_full)) { // image not already used $ductile_stickers[] = array( 'label' => null, 'url' => null, 'image' => $v); } } } } $conf_tab = isset($_POST['conf_tab']) ? $_POST['conf_tab'] : 'html'; if (!empty($_POST)) { try { # HTML if ($conf_tab == 'html') { $ductile_user['subtitle_hidden'] = (integer) !empty($_POST['subtitle_hidden']); $ductile_stickers = array(); for ($i = 0; $i < count($_POST['sticker_image']); $i++) { $ductile_stickers[] = array( 'label' => $_POST['sticker_label'][$i], 'url' => $_POST['sticker_url'][$i], 'image' => $_POST['sticker_image'][$i] ); } $order = array(); if (empty($_POST['ds_order']) && !empty($_POST['order'])) { $order = $_POST['order']; asort($order); $order = array_keys($order); } if (!empty($order)) { $new_ductile_stickers = array(); foreach ($order as $i => $k) { $new_ductile_stickers[] = array( 'label' => $ductile_stickers[$k]['label'], 'url' => $ductile_stickers[$k]['url'], 'image' => $ductile_stickers[$k]['image'] ); } $ductile_stickers = $new_ductile_stickers; } for ($i = 0; $i < count($_POST['list_type']); $i++) { $ductile_lists[$_POST['list_ctx'][$i]] = $_POST['list_type'][$i]; } for ($i = 0; $i < count($_POST['count_nb']); $i++) { $ductile_counts[$_POST['count_ctx'][$i]] = $_POST['count_nb'][$i]; } } # CSS if ($conf_tab == 'css') { $ductile_user['body_font'] = $_POST['body_font']; $ductile_user['alternate_font'] = $_POST['alternate_font']; $ductile_user['blog_title_w'] = (integer) !empty($_POST['blog_title_w']); $ductile_user['blog_title_s'] = adjustFontSize($_POST['blog_title_s']); $ductile_user['blog_title_c'] = adjustColor($_POST['blog_title_c']); $ductile_user['post_title_w'] = (integer) !empty($_POST['post_title_w']); $ductile_user['post_title_s'] = adjustFontSize($_POST['post_title_s']); $ductile_user['post_title_c'] = adjustColor($_POST['post_title_c']); $ductile_user['post_link_w'] = (integer) !empty($_POST['post_link_w']); $ductile_user['post_link_v_c'] = adjustColor($_POST['post_link_v_c']); $ductile_user['post_link_f_c'] = adjustColor($_POST['post_link_f_c']); $ductile_user['post_simple_title_c'] = adjustColor($_POST['post_simple_title_c']); $ductile_user['blog_title_w_m'] = (integer) !empty($_POST['blog_title_w_m']); $ductile_user['blog_title_s_m'] = adjustFontSize($_POST['blog_title_s_m']); $ductile_user['blog_title_c_m'] = adjustColor($_POST['blog_title_c_m']); $ductile_user['post_title_w_m'] = (integer) !empty($_POST['post_title_w_m']); $ductile_user['post_title_s_m'] = adjustFontSize($_POST['post_title_s_m']); $ductile_user['post_title_c_m'] = adjustColor($_POST['post_title_c_m']); } $core->blog->settings->addNamespace('themes'); $core->blog->settings->themes->put($core->blog->settings->system->theme.'_style',serialize($ductile_user)); $core->blog->settings->themes->put($core->blog->settings->system->theme.'_stickers',serialize($ductile_stickers)); $core->blog->settings->themes->put($core->blog->settings->system->theme.'_entries_lists',serialize($ductile_lists)); $core->blog->settings->themes->put($core->blog->settings->system->theme.'_entries_counts',serialize($ductile_counts)); // Blog refresh $core->blog->triggerBlog(); // Template cache reset $core->emptyTemplatesCache(); echo '
'; } catch (Exception $e) { $core->error->add($e->getMessage()); } } // To be deleted when adminThemeConfigManaged behaviour will be implemented in admin/blog_themes.php : echo ''; # HTML Tab echo '