public function gui($url) { $bls = $this->getServers(); if (isset($_POST['bls'])) { try { $this->core->blog->settings->addNamespace('antispam'); $this->core->blog->settings->antispam->put('antispam_dnsbls', $_POST['bls'], 'string', 'Antispam DNSBL servers', true, false); dcPage::addSuccessNotice(__('The list of DNSBL servers has been succesfully updated.')); http::redirect($url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* DISPLAY ---------------------------------------------- */ $res = dcPage::notices(); $res .= '<form action="' . html::escapeURL($url) . '" method="post" class="fieldset">' . '<h3>' . __('IP Lookup servers') . '</h3>' . '<p><label for="bls">' . __('Add here a coma separated list of servers.') . '</label>' . form::textarea('bls', 40, 3, html::escapeHTML($bls), 'maximal') . '</p>' . '<p><input type="submit" value="' . __('Save') . '" />' . $this->core->formNonce() . '</p>' . '</form>'; return $res; }
public static function doReorderPages($core, dcPostsActionsPage $ap, $post) { foreach ($post['order'] as $post_id => $value) { if (!$core->auth->check('publish,contentadmin', $core->blog->id)) { throw new Exception(__('You are not allowed to change this entry status')); } $strReq = "WHERE blog_id = '" . $core->con->escape($core->blog->id) . "' " . "AND post_id " . $core->con->in($post_id); #If user can only publish, we need to check the post's owner if (!$core->auth->check('contentadmin', $core->blog->id)) { $strReq .= "AND user_id = '" . $core->con->escape($core->auth->userID()) . "' "; } $cur = $core->con->openCursor($core->prefix . 'post'); $cur->post_position = (int) $value - 1; $cur->post_upddt = date('Y-m-d H:i:s'); $cur->update($strReq); $core->blog->triggerBlog(); } dcPage::addSuccessNotice(__('Selected pages have been successfully reordered.')); $ap->redirect(false); }
public function gui($url) { global $default_tab; $core =& $this->core; # Set current type and tab $ip_type = 'black'; if (!empty($_REQUEST['ip_type']) && $_REQUEST['ip_type'] == 'white') { $ip_type = 'white'; } $default_tab = 'tab_' . $ip_type; # Add IP to list if (!empty($_POST['addip'])) { try { $global = !empty($_POST['globalip']) && $core->auth->isSuperAdmin(); $this->addIP($ip_type, $_POST['addip'], $global); dcPage::addSuccessNotice(__('IP address has been successfully added.')); http::redirect($url . '&ip_type=' . $ip_type); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Remove IP from list if (!empty($_POST['delip']) && is_array($_POST['delip'])) { try { $this->removeRule($_POST['delip']); dcPage::addSuccessNotice(__('IP addresses have been successfully removed.')); http::redirect($url . '&ip_type=' . $ip_type); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* DISPLAY ---------------------------------------------- */ $res = dcPage::notices(); $res .= $this->displayForms($url, 'black', __('Blacklist')) . $this->displayForms($url, 'white', __('Whitelist')); return $res; }
public function gui($url) { $blog =& $this->core->blog; $blog->settings->addNamespace('akismet'); $ak_key = $blog->settings->akismet->ak_key; $ak_verified = null; if (isset($_POST['ak_key'])) { try { $ak_key = $_POST['ak_key']; $blog->settings->akismet->put('ak_key', $ak_key, 'string'); dcPage::addSuccessNotice(__('Filter configuration have been successfully saved.')); http::redirect($url); } catch (Exception $e) { $this->core->error->add($e->getMessage()); } } if ($blog->settings->akismet->ak_key) { try { $ak = new akismet($blog->url, $blog->settings->akismet->ak_key); $ak_verified = $ak->verify(); } catch (Exception $e) { $this->core->error->add($e->getMessage()); } } $res = dcPage::notices(); $res .= '<form action="' . html::escapeURL($url) . '" method="post" class="fieldset">' . '<p><label for="ak_key" class="classic">' . __('Akismet API key:') . '</label> ' . form::field('ak_key', 12, 128, $ak_key); if ($ak_verified !== null) { if ($ak_verified) { $res .= ' <img src="images/check-on.png" alt="" /> ' . __('API key verified'); } else { $res .= ' <img src="images/check-off.png" alt="" /> ' . __('API key not verified'); } } $res .= '</p>'; $res .= '<p><a href="http://akismet.com/">' . __('Get your own API key') . '</a></p>' . '<p><input type="submit" value="' . __('Save') . '" />' . $this->core->formNonce() . '</p>' . '</form>'; return $res; }
public static function adminRemoveTags($core, dcPostsActionsPage $ap, $post) { if (!empty($post['meta_id']) && $core->auth->check('delete,contentadmin', $core->blog->id)) { $meta =& $core->meta; $posts = $ap->getRS(); while ($posts->fetch()) { foreach ($_POST['meta_id'] as $v) { $meta->delPostMeta($posts->post_id, 'tag', $v); } } dcPage::addSuccessNotice(sprintf(__('Tag has been successfully removed from selected entries', 'Tags have been successfully removed from selected entries', count($_POST['meta_id'])))); $ap->redirect(true); } else { $meta =& $core->meta; $tags = array(); foreach ($ap->getIDS() as $id) { $post_tags = $meta->getMetadata(array('meta_type' => 'tag', 'post_id' => (int) $id))->toStatic()->rows(); foreach ($post_tags as $v) { if (isset($tags[$v['meta_id']])) { $tags[$v['meta_id']]++; } else { $tags[$v['meta_id']] = 1; } } } if (empty($tags)) { throw new Exception(__('No tags for selected entries')); } $ap->beginPage(dcPage::breadcrumb(array(html::escapeHTML($core->blog->name) => '', __('Entries') => 'posts.php', __('Remove selected tags from this selection') => ''))); $posts_count = count($_POST['entries']); echo '<form action="' . $ap->getURI() . '" method="post">' . $ap->getCheckboxes() . '<div><p>' . __('Following tags have been found in selected entries:') . '</p>'; foreach ($tags as $k => $n) { $label = '<label class="classic">%s %s</label>'; if ($posts_count == $n) { $label = sprintf($label, '%s', '<strong>%s</strong>'); } echo '<p>' . sprintf($label, form::checkbox(array('meta_id[]'), html::escapeHTML($k)), html::escapeHTML($k)) . '</p>'; } echo '<p><input type="submit" value="' . __('ok') . '" />' . $core->formNonce() . $ap->getHiddenFields() . form::hidden(array('action'), 'tags_remove') . '</p></div></form>'; $ap->endPage(); } }
$blog_settings->system->put('media_img_default_alignment', $_POST['media_img_default_alignment']); $blog_settings->system->put('media_img_default_link', !empty($_POST['media_img_default_link'])); $blog_settings->system->put('nb_post_per_feed', $nb_post_per_feed); $blog_settings->system->put('nb_comment_per_feed', $nb_comment_per_feed); $blog_settings->system->put('short_feed_items', !empty($_POST['short_feed_items'])); if (isset($_POST['robots_policy'])) { $blog_settings->system->put('robots_policy', $_POST['robots_policy']); } $blog_settings->system->put('jquery_version', $_POST['jquery_version']); $blog_settings->system->put('prevents_clickjacking', !empty($_POST['prevents_clickjacking'])); # --BEHAVIOR-- adminBeforeBlogSettingsUpdate $core->callBehavior('adminBeforeBlogSettingsUpdate', $blog_settings); if ($core->auth->isSuperAdmin() && in_array($_POST['url_scan'], $url_scan_combo)) { $blog_settings->system->put('url_scan', $_POST['url_scan']); } dcPage::addSuccessNotice(__('Blog has been successfully updated.')); http::redirect(sprintf($redir, $blog_id)); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if ($standalone) { $breadcrumb = dcPage::breadcrumb(array(html::escapeHTML($blog_name) => '', __('Blog settings') => '')); } else { $breadcrumb = dcPage::breadcrumb(array(__('System') => '', __('Blogs') => $core->adminurl->get("admin.blogs"), __('Blog settings') . ' : ' . html::escapeHTML($blog_name) => '')); } dcPage::open(__('Blog settings'), '<script type="text/javascript">' . "\n" . "//<![CDATA[" . "\n" . dcPage::jsVar('dotclear.msg.warning_path_info', __('Warning: except for special configurations, it is generally advised to have a trailing "/" in your blog URL in PATH_INFO mode.')) . "\n" . dcPage::jsVar('dotclear.msg.warning_query_string', __('Warning: except for special configurations, it is generally advised to have a trailing "?" in your blog URL in QUERY_STRING mode.')) . "\n" . "//]]>" . "</script>" . dcPage::jsConfirmClose('blog-form') . $core->callBehavior('adminPostEditor') . dcPage::jsLoad('js/_blog_pref.js') . $core->callBehavior('adminBlogPreferencesHeaders') . dcPage::jsPageTabs(), $breadcrumb); if ($blog_id) { if (!empty($_GET['add'])) { dcPage::success(__('Blog has been successfully created.')); }
// Save settings if (!empty($_POST['save_settings'])) { try { $core->blog->settings->maintenance->put('plugin_message', !empty($_POST['settings_plugin_message']), 'boolean', 'Display alert message of late tasks on plugin page', true, true); foreach ($tasks as $t) { if (!$t->id()) { continue; } if (!empty($_POST['settings_recall_type']) && $_POST['settings_recall_type'] == 'all') { $ts = $_POST['settings_recall_time']; } else { $ts = empty($_POST['settings_ts_' . $t->id()]) ? 0 : $_POST['settings_ts_' . $t->id()]; } $core->blog->settings->maintenance->put('ts_' . $t->id(), abs((int) $ts), 'integer', sprintf('Recall time for task %s', $t->id()), true, $t->blog()); } dcPage::addSuccessNotice(__('Maintenance plugin has been successfully configured.')); http::redirect($p_url . '&tab=' . $tab . '#' . $tab); } catch (Exception $e) { $core->error->add($e->getMessage()); } } // Combos $combo_ts = array(__('Never') => 0, __('Every week') => 604800, __('Every two weeks') => 1209600, __('Every month') => 2592000, __('Every two months') => 5184000); // Display page echo '<html><head> <title>' . __('Maintenance') . '</title>' . dcPage::jsPageTabs($tab) . dcPage::jsLoad(dcPage::getPF('maintenance/js/settings.js')); if ($task && $task->ajax()) { echo '<script type="text/javascript">' . "\n" . "//<![CDATA[\n" . dcPage::jsVar('dotclear.msg.wait', __('Please wait...')) . "//]]>\n" . '</script>' . dcPage::jsLoad(dcPage::getPF('maintenance/js/dc.maintenance.js')); } echo $maintenance->getHeaders() . ' </head>
$core->callBehavior('adminAfterUserUpdate', $cur, $new_id); if ($user_id == $core->auth->userID() && $user_id != $new_id) { $core->session->destroy(); } dcPage::addSuccessNotice(__('User has been successfully updated.')); $core->adminurl->redirect("admin.user", array('id' => $new_id)); } else { if ($core->getUsers(array('user_id' => $cur->user_id), true)->f(0) > 0) { throw new Exception(sprintf(__('User "%s" already exists.'), html::escapeHTML($cur->user_id))); } # --BEHAVIOR-- adminBeforeUserCreate $core->callBehavior('adminBeforeUserCreate', $cur); $new_id = $core->addUser($cur); # --BEHAVIOR-- adminAfterUserCreate $core->callBehavior('adminAfterUserCreate', $cur, $new_id); dcPage::addSuccessNotice(__('User has been successfully created.')); if (!empty($_POST['saveplus'])) { $core->adminurl->redirect("admin.user"); } else { $core->adminurl->redirect("admin.user", array('id' => $new_id)); } } } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* DISPLAY -------------------------------------------------------- */ dcPage::open($page_title, dcPage::jsConfirmClose('user-form') . dcPage::jsLoad('js/jquery/jquery.pwstrength.js') . '<script type="text/javascript">' . "\n" . "//<![CDATA[\n" . "\$(function() {\n" . "\t\$('#new_pwd').pwstrength({texts: ['" . sprintf(__('Password strength: %s'), __('very weak')) . "', '" . sprintf(__('Password strength: %s'), __('weak')) . "', '" . sprintf(__('Password strength: %s'), __('mediocre')) . "', '" . sprintf(__('Password strength: %s'), __('strong')) . "', '" . sprintf(__('Password strength: %s'), __('very strong')) . "']});\n" . "});\n" . "\n//]]>\n" . "</script>\n" . $core->callBehavior('adminUserHeaders'), dcPage::breadcrumb(array(__('System') => '', __('Users') => $core->adminurl->get("admin.users"), $page_title => ''))); if (!empty($_GET['upd'])) { dcPage::success(__('User has been successfully updated.'));
# Update order if (!empty($_POST['save_order']) && !empty($_POST['categories_order'])) { $categories = json_decode($_POST['categories_order']); foreach ($categories as $category) { if (!empty($category->item_id) && !empty($category->left) && !empty($category->right)) { $core->blog->updCategoryPosition($category->item_id, $category->left, $category->right); } } dcPage::addSuccessNotice(__('Categories have been successfully reordered.')); $core->adminurl->redirect("admin.categories"); } # Reset order if (!empty($_POST['reset'])) { try { $core->blog->resetCategoriesOrder(); dcPage::addSuccessNotice(__('Categories order has been successfully reset.')); $core->adminurl->redirect("admin.categories"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* Display -------------------------------------------------------- */ $rs = $core->blog->getCategories(array('post_type' => 'post')); $starting_script = ""; $core->auth->user_prefs->addWorkspace('accessibility'); if (!$core->auth->user_prefs->accessibility->nodragdrop && $core->auth->check('categories', $core->blog->id) && $rs->count() > 1) { $starting_script .= dcPage::jsLoad('js/jquery/jquery-ui.custom.js'); $starting_script .= dcPage::jsLoad('js/jquery/jquery.ui.touch-punch.js'); $starting_script .= dcPage::jsLoad('js/jquery/jquery.mjs.nestedSortable.js'); }
$order = substr($order, 0, strlen($order) - 1); } $order = explode(',', $order); } if (!empty($_POST['updateaction']) && !empty($order)) { try { $newmenu = array(); foreach ($order as $i => $k) { $newmenu[] = array('label' => $menu[$k]['label'], 'descr' => $menu[$k]['descr'], 'url' => $menu[$k]['url']); } $menu = $newmenu; // Save menu in blog settings $core->blog->settings->system->put('simpleMenu', serialize($menu)); $core->blog->triggerBlog(); // All done successfully, return to menu items list dcPage::addSuccessNotice(__('Menu items have been successfully updated.')); http::redirect($p_url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } } } # Display ?> <html> <head> <title><?php echo $page_title; ?>
} elseif (!empty($_POST['filters_order'])) { $order = explode(',', trim($_POST['filters_order'], ',')); } if (isset($order)) { foreach ($order as $i => $f) { $filters_opt[$f][1] = $i; } } # Set auto delete flag if (isset($_POST['filters_auto_del']) && is_array($_POST['filters_auto_del'])) { foreach ($_POST['filters_auto_del'] as $v) { $filters_opt[$v][2] = true; } } dcAntispam::$filters->saveFilterOpts($filters_opt); dcPage::addSuccessNotice(__('Filters configuration has been successfully saved.')); http::redirect($p_url); } } catch (Exception $e) { $core->error->add($e->getMessage()); } ?> <html> <head> <title><?php echo ($filter_gui !== false ? sprintf(__('%s configuration'), $filter->name) . ' - ' : '') . $page_name; ?> </title> <script type="text/javascript"> //<![CDATA[ <?php
} elseif (!empty($_REQUEST['po'])) { $file = $o->getFileContent('po', $_REQUEST['po']); } } catch (Exception $e) { $file = $file_default; throw $e; } # Write file if (!empty($_POST['write'])) { $file['c'] = $_POST['file_content']; $o->writeFile($file['type'], $file['f'], $file['c']); } # Delete file if (!empty($_POST['delete'])) { $o->deleteFile($file['type'], $file['f']); dcPage::addSuccessNotice(__('The file has been reset.')); http::redirect($p_url . '&' . $file['type'] . '=' . $file['f']); } } catch (Exception $e) { $core->error->add($e->getMessage()); } ?> <html> <head> <title><?php echo __('Edit theme files'); ?> </title> <?php echo dcPage::cssLoad(dcPage::getPF('themeEditor/style.css'));
$core->callBehavior('adminBeforeCommentUpdate', $cur, $comment_id); $core->blog->updComment($comment_id, $cur); # --BEHAVIOR-- adminAfterCommentUpdate $core->callBehavior('adminAfterCommentUpdate', $cur, $comment_id); dcPage::addSuccessNotice(__('Comment has been successfully updated.')); $core->adminurl->redirect("admin.comment", array('id' => $comment_id)); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if (!empty($_POST['delete']) && $can_delete) { try { # --BEHAVIOR-- adminBeforeCommentDelete $core->callBehavior('adminBeforeCommentDelete', $comment_id); $core->blog->delComment($comment_id); dcPage::addSuccessNotice(__('Comment has been successfully deleted.')); http::redirect($core->getPostAdminURL($rs->post_type, $rs->post_id) . '&co=1', false); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if (!$can_edit) { $core->error->add(__("You can't edit this comment.")); } } /* DISPLAY -------------------------------------------------------- */ if ($comment_id) { $breadcrumb = dcPage::breadcrumb(array(html::escapeHTML($core->blog->name) => '', html::escapeHTML($post_title) => $core->getPostAdminURL($post_type, $post_id) . '&co=1#c' . $comment_id, __('Edit comment') => '')); } else { $breadcrumb = dcPage::breadcrumb(array(html::escapeHTML($core->blog->name) => '', html::escapeHTML($post_title) => $core->getPostAdminURL($post_type, $post_id), __('Edit comment') => ''));
<?php # -- BEGIN LICENSE BLOCK --------------------------------------- # # This file is part of Dotclear 2. # # Copyright (c) 2003-2015 Olivier Meunier & Association Dotclear # Licensed under the GPL version 2.0 license. # See LICENSE file or # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html # # -- END LICENSE BLOCK ----------------------------------------- if (!defined('DC_CONTEXT_ADMIN')) { exit; } $core->blog->settings->addNameSpace('dcReactify'); $dcreactify_active = $core->blog->settings->dcReactify->active; $is_super_admin = $core->auth->isSuperAdmin(); $default_tab = 'settings'; if (!empty($_POST['saveconfig'])) { try { $dcreactify_active = empty($_POST['dcreactify_active']) ? false : true; $core->blog->settings->dcReactify->put('active', $dcreactify_active, 'boolean'); dcPage::addSuccessNotice(__('Configuration has been updated.')); http::redirect($p_url); } catch (Exception $e) { http::redirect($p_url); } } include dirname(__FILE__) . '/tpl/index.tpl';
http::redirect($p_url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Global settings update if (!empty($_POST['gs']) && is_array($_POST['gs'])) { try { foreach ($_POST['gs'] as $ns => $s) { $core->blog->settings->addNamespace($ns); foreach ($s as $k => $v) { $core->blog->settings->{$ns}->put($k, $v, null, null, true, true); } $core->blog->triggerBlog(); } dcPage::addSuccessNotice(__('Configuration successfully updated')); http::redirect($p_url . '&part=global'); } catch (Exception $e) { $core->error->add($e->getMessage()); } } $part = !empty($_GET['part']) && $_GET['part'] == 'global' ? 'global' : 'local'; function settingLine($id, $s, $ns, $field_name, $strong_label) { if ($s['type'] == 'boolean') { $field = form::combo(array($field_name . '[' . $ns . '][' . $id . ']', $field_name . '_' . $ns . '_' . $id), array(__('yes') => 1, __('no') => 0), $s['value'] ? 1 : 0); } else { $field = form::field(array($field_name . '[' . $ns . '][' . $id . ']', $field_name . '_' . $ns . '_' . $id), 40, null, html::escapeHTML($s['value'])); } $slabel = $strong_label ? '<strong>%s</strong>' : '%s'; return '<tr class="line">' . '<td scope="row"><label for="' . $field_name . '_' . $ns . '_' . $id . '">' . sprintf($slabel, html::escapeHTML($id)) . '</label></td>' . '<td>' . $field . '</td>' . '<td>' . $s['type'] . '</td>' . '<td>' . html::escapeHTML($s['label']) . '</td>' . '</tr>';
files::uploadStatus($_FILES['pkg_file']); $dest = DC_L10N_ROOT . '/' . $_FILES['pkg_file']['name']; if (!move_uploaded_file($_FILES['pkg_file']['tmp_name'], $dest)) { throw new Exception(__('Unable to move uploaded file.')); } try { $ret_code = dc_lang_install($dest); } catch (Exception $e) { @unlink($dest); throw $e; } @unlink($dest); if ($ret_code == 2) { dcPage::addSuccessNotice(__('Language has been successfully upgraded')); } else { dcPage::addSuccessNotice(__('Language has been successfully installed.')); } $core->adminurl->redirect("admin.langs"); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* DISPLAY Main page -------------------------------------------------------- */ dcPage::open(__('Languages management'), dcPage::jsLoad('js/_langs.js'), dcPage::breadcrumb(array(__('System') => '', __('Languages management') => ''))); if (!empty($_GET['removed'])) { dcPage::success(__('Language has been successfully deleted.')); } if (!empty($_GET['added'])) { dcPage::success($_GET['added'] == 2 ? __('Language has been successfully upgraded') : __('Language has been successfully installed.')); }
$core->adminurl->redirect('admin.media', $page_url_params); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Removing item from popup only if ($dir && !empty($_POST['rmyes']) && !empty($_POST['remove'])) { $_POST['remove'] = rawurldecode($_POST['remove']); try { if (is_dir(path::real($core->media->getPwd() . '/' . path::clean($_POST['remove'])))) { $msg = __('Directory has been successfully removed.'); } else { $msg = __('File has been successfully removed.'); } $core->media->removeItem($_POST['remove']); dcPage::addSuccessNotice($msg); $core->adminurl->redirect('admin.media', $page_url_params); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Rebuild directory if ($dir && $core->auth->isSuperAdmin() && !empty($_POST['rebuild'])) { try { $core->media->rebuild($d); dcPage::success(sprintf(__('Directory "%s" has been successfully rebuilt.'), html::escapeHTML($d))); $core->adminurl->redirect('admin.media', $page_url_params); } catch (Exception $e) { $core->error->add($e->getMessage()); } }
if (isset($_POST['new_tag_id'])) { $new_id = dcMeta::sanitizeMetaID($_POST['new_tag_id']); try { if ($core->meta->updateMeta($tag, $new_id, 'tag')) { dcPage::addSuccessNotice(__('Tag has been successfully renamed')); http::redirect($p_url . '&m=tag_posts&tag=' . $new_id); } } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Delete a tag if (!empty($_POST['delete']) && $core->auth->check('publish,contentadmin', $core->blog->id)) { try { $core->meta->delMeta($tag, 'tag'); dcPage::addSuccessNotice(__('Tag has been successfully removed')); http::redirect($p_url . '&m=tags'); } catch (Exception $e) { $core->error->add($e->getMessage()); } } $params = array(); $params['limit'] = array(($page - 1) * $nb_per_page, $nb_per_page); $params['no_content'] = true; $params['meta_id'] = $tag; $params['meta_type'] = 'tag'; $params['post_type'] = ''; # Get posts try { $posts = $core->meta->getPostsByMeta($params); $counter = $core->meta->getPostsByMeta($params, true);
# Update category if ($cat_id) { # --BEHAVIOR-- adminBeforeCategoryUpdate $core->callBehavior('adminBeforeCategoryUpdate', $cur, $cat_id); $core->blog->updCategory($_POST['id'], $cur); # --BEHAVIOR-- adminAfterCategoryUpdate $core->callBehavior('adminAfterCategoryUpdate', $cur, $cat_id); dcPage::addSuccessNotice(__('The category has been successfully updated.')); $core->adminurl->redirect("admin.category", array('id' => $_POST['id'])); } else { # --BEHAVIOR-- adminBeforeCategoryCreate $core->callBehavior('adminBeforeCategoryCreate', $cur); $id = $core->blog->addCategory($cur, (int) $_POST['new_cat_parent']); # --BEHAVIOR-- adminAfterCategoryCreate $core->callBehavior('adminAfterCategoryCreate', $cur, $id); dcPage::addSuccessNotice(sprintf(__('The category "%s" has been successfully created.'), html::escapeHTML($cur->cat_title))); $core->adminurl->redirect("admin.categories"); } } catch (Exception $e) { $core->error->add($e->getMessage()); } } $title = $cat_id ? html::escapeHTML($cat_title) : __('New category'); $elements = array(html::escapeHTML($core->blog->name) => '', __('Categories') => $core->adminurl->get("admin.categories")); if ($cat_id) { while ($parents->fetch()) { $elements[html::escapeHTML($parents->cat_title)] = $core->adminurl->get("admin.category", array('id' => $parents->cat_id)); } } $elements[$title] = ''; $category_editor = $core->auth->getOption('editor');
} else { http::redirect($core->getPostAdminURL($rs->post_type, $post_id, false)); } } $core->media = new dcMedia($core); $f = $core->media->getPostMedia($post_id, $media_id); if (empty($f)) { $post_id = $media_id = null; throw new Exception(__('This attachment does not exist')); } $f = $f[0]; } catch (Exception $e) { $core->error->add($e->getMessage()); } # Remove a media from en if ($post_id && $media_id || $core->error->flag()) { if (!empty($_POST['remove'])) { $core->media->removePostMedia($post_id, $media_id); dcPage::addSuccessNotice(__('Attachment has been successfully removed.')); http::redirect($core->getPostAdminURL($rs->post_type, $post_id, false)); } elseif (isset($_POST['post_id'])) { http::redirect($core->getPostAdminURL($rs->post_type, $post_id, false)); } if (!empty($_GET['remove'])) { dcPage::open(__('Remove attachment')); echo '<h2>' . __('Attachment') . ' › <span class="page-title">' . __('confirm removal') . '</span></h2>'; echo '<form action="' . $core->adminurl->get("admin.post.media") . '" method="post">' . '<p>' . __('Are you sure you want to remove this attachment?') . '</p>' . '<p><input type="submit" class="reset" value="' . __('Cancel') . '" /> ' . ' <input type="submit" class="delete" name="remove" value="' . __('Yes') . '" />' . form::hidden('post_id', $post_id) . form::hidden('media_id', $media_id) . $core->formNonce() . '</p>' . '</form>'; dcPage::close(); exit; } }
dcPage::addSuccessNotice(__('Preferences successfully updated')); http::redirect($p_url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Global prefs update if (!empty($_POST['gs']) && is_array($_POST['gs'])) { try { foreach ($_POST['gs'] as $ws => $s) { $core->auth->user_prefs->addWorkspace($ws); foreach ($s as $k => $v) { $core->auth->user_prefs->{$ws}->put($k, $v, null, null, true, true); } } dcPage::addSuccessNotice(__('Preferences successfully updated')); http::redirect($p_url . '&part=global'); } catch (Exception $e) { $core->error->add($e->getMessage()); } } $part = !empty($_GET['part']) && $_GET['part'] == 'global' ? 'global' : 'local'; function prefLine($id, $s, $ws, $field_name, $strong_label) { if ($s['type'] == 'boolean') { $field = form::combo(array($field_name . '[' . $ws . '][' . $id . ']', $field_name . '_' . $ws . '_' . $id), array(__('yes') => 1, __('no') => 0), $s['value'] ? 1 : 0); } else { $field = form::field(array($field_name . '[' . $ws . '][' . $id . ']', $field_name . '_' . $ws . '_' . $id), 40, null, html::escapeHTML($s['value'])); } $slabel = $strong_label ? '<strong>%s</strong>' : '%s'; return '<tr class="line">' . '<td scope="row"><label for="' . $field_name . '_' . $ws . '_' . $id . '">' . sprintf($slabel, html::escapeHTML($id)) . '</label></td>' . '<td>' . $field . '</td>' . '<td>' . $s['type'] . '</td>' . '<td>' . html::escapeHTML($s['label']) . '</td>' . '</tr>';
public function gui($url) { $core =& $this->core; # Create list if (!empty($_POST['createlist'])) { try { $this->defaultWordsList(); dcPage::addSuccessNotice(__('Words have been successfully added.')); http::redirect($url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Adding a word if (!empty($_POST['swa'])) { $globalsw = !empty($_POST['globalsw']) && $core->auth->isSuperAdmin(); try { $this->addRule($_POST['swa'], $globalsw); dcPage::addSuccessNotice(__('Word has been successfully added.')); http::redirect($url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Removing spamwords if (!empty($_POST['swd']) && is_array($_POST['swd'])) { try { $this->removeRule($_POST['swd']); dcPage::addSuccessNotice(__('Words have been successfully removed.')); http::redirect($url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } /* DISPLAY ---------------------------------------------- */ $res = dcPage::notices(); $res .= '<form action="' . html::escapeURL($url) . '" method="post" class="fieldset">' . '<p><label class="classic" for="swa">' . __('Add a word ') . '</label> ' . form::field('swa', 20, 128); if ($core->auth->isSuperAdmin()) { $res .= '<label class="classic" for="globalsw">' . form::checkbox('globalsw', 1) . __('Global word (used for all blogs)') . '</label> '; } $res .= $core->formNonce() . '</p>' . '<p><input type="submit" value="' . __('Add') . '"/></p>' . '</form>'; $rs = $this->getRules(); if ($rs->isEmpty()) { $res .= '<p><strong>' . __('No word in list.') . '</strong></p>'; } else { $res .= '<form action="' . html::escapeURL($url) . '" method="post" class="fieldset">' . '<h3>' . __('List of bad words') . '</h3>' . '<div class="antispam">'; $res_global = ''; $res_local = ''; while ($rs->fetch()) { $disabled_word = false; $p_style = ''; if (!$rs->blog_id) { $disabled_word = !$core->auth->isSuperAdmin(); $p_style .= ' global'; } $item = '<p class="' . $p_style . '"><label class="classic" for="word-' . $rs->rule_id . '">' . form::checkbox(array('swd[]', 'word-' . $rs->rule_id), $rs->rule_id, false, '', '', $disabled_word) . ' ' . html::escapeHTML($rs->rule_content) . '</label></p>'; if ($rs->blog_id) { // local list if ($res_local == '') { $res_local = '<h4>' . __('Local words (used only for this blog)') . '</h4>'; } $res_local .= $item; } else { // global list if ($res_global == '') { $res_global = '<h4>' . __('Global words (used for all blogs)') . '</h4>'; } $res_global .= $item; } } $res .= '<div class="local">' . $res_local . '</div>'; $res .= '<div class="global">' . $res_global . '</div>'; $res .= '</div>' . '<p>' . form::hidden(array('spamwords'), 1) . $core->formNonce() . '<input class="submit delete" type="submit" value="' . __('Delete selected words') . '"/></p>' . '</form>'; } if ($core->auth->isSuperAdmin()) { $res .= '<form action="' . html::escapeURL($url) . '" method="post">' . '<p><input type="submit" value="' . __('Create default wordlist') . '" />' . form::hidden(array('spamwords'), 1) . form::hidden(array('createlist'), 1) . $core->formNonce() . '</p>' . '</form>'; } return $res; }
if (!empty($_POST['buttons'])) { foreach ($_POST['buttons'] as $plugin_name => $button_name) { $plugins[$plugin_name]['button'] = $button_name; } } $core->blog->settings->dcCKEditorAddons->put('plugins', json_encode($plugins), 'string'); if ($_POST['action'] == 'activate') { $verb = 'activated'; } else { $verb = 'deactivated'; } dcPage::addSuccessNotice(sprintf(__('Selected addon has been ' . $verb . '.', 'Selected (%d) addons have been ' . $verb . '.', count($_POST['plugins'])), count($_POST['plugins']))); http::redirect($p_url); } elseif ($_POST['action'] == 'delete') { try { foreach ($_POST['plugins'] as $plugin_name) { if (!files::deltree($dcckeditor_addons_repository_path . '/' . $dcckeditor_addons_plugins[$plugin_name]['path'])) { throw new Exception(sprintf(__('Cannot remove addon "%s" files'), $plugin_name)); } unset($plugins[$plugin_name]); } dcPage::addSuccessNotice(sprintf(__('Selected addon has been deleted.', 'Selected (%d) addons have been deleted.', count($_POST['plugins'])), count($_POST['plugins']))); $core->blog->settings->dcCKEditorAddons->put('plugins', json_encode($plugins), 'string'); } catch (Exception $e) { dcPage::addErrorNotice($e->getMessage()); } http::redirect($p_url); } } } include __DIR__ . '/tpl/index.tpl';
} } try { $blogroll->updateLink($id, $link_title, $link_href, $link_desc, $link_lang, trim($link_xfn)); dcPage::addSuccessNotice(__('Link has been successfully updated')); http::redirect($p_url . '&edit=1&id=' . $id); } catch (Exception $e) { $core->error->add($e->getMessage()); } } # Update a category if (isset($rs) && $rs->is_cat && !empty($_POST['edit_cat'])) { $link_desc = $_POST['link_desc']; try { $blogroll->updateCategory($id, $link_desc); dcPage::addSuccessNotice(__('Category has been successfully updated')); http::redirect($p_url . '&edit=1&id=' . $id); } catch (Exception $e) { $core->error->add($e->getMessage()); } } ?> <html> <head> <title>Blogroll</title> </head> <body> <?php echo dcPage::breadcrumb(array(html::escapeHTML($core->blog->name) => '', __('Blogroll') => $p_url)) . dcPage::notices(); ?>
if (!$core->favs->exists($v)) { unset($order[$k]); } } $core->favs->setFavoriteIDs($order, false); if (!$core->error->flag()) { dcPage::addSuccessNotice(__('Favorites have been successfully updated.')); $core->adminurl->redirect("admin.user.preferences", array(), '#user-favorites'); } } # Replace default favorites by current set (super admin only) if (!empty($_POST['replace']) && $core->auth->isSuperAdmin()) { $user_favs = $core->favs->getFavoriteIDs(false); $core->favs->setFavoriteIDs($user_favs, true); if (!$core->error->flag()) { dcPage::addSuccessNotice(__('Default favorites have been successfully updated.')); $core->adminurl->redirect("admin.user.preferences", array(), '#user-favorites'); } } /* DISPLAY -------------------------------------------------------- */ dcPage::open($page_title, dcPage::jsLoad('js/_preferences.js') . ($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')) . dcPage::jsLoad('js/jquery/jquery-ui.custom.js') . dcPage::jsLoad('js/jquery/jquery.ui.touch-punch.js') . dcPage::jsLoad('js/jquery/jquery.pwstrength.js') . '<script type="text/javascript">' . "\n" . "//<![CDATA[\n" . "\$(function() {\n" . "\t\$('#new_pwd').pwstrength({texts: ['" . sprintf(__('Password strength: %s'), __('very weak')) . "', '" . sprintf(__('Password strength: %s'), __('weak')) . "', '" . sprintf(__('Password strength: %s'), __('mediocre')) . "', '" . sprintf(__('Password strength: %s'), __('strong')) . "', '" . sprintf(__('Password strength: %s'), __('very strong')) . "']});\n" . "});" . "\n//]]>\n" . "</script>\n" . dcPage::jsPageTabs($default_tab) . dcPage::jsConfirmClose('user-form') . $core->callBehavior('adminPreferencesHeaders'), dcPage::breadcrumb(array(html::escapeHTML($core->auth->userID()) => '', $page_title => ''))); # User profile echo '<div class="multi-part" id="user-profile" title="' . __('My profile') . '">'; echo '<h3>' . __('My profile') . '</h3>' . '<form action="' . $core->adminurl->get("admin.user.preferences") . '" method="post" id="user-form">' . '<p><label for="user_name">' . __('Last Name:') . '</label>' . form::field('user_name', 20, 255, html::escapeHTML($user_name)) . '</p>' . '<p><label for="user_firstname">' . __('First Name:') . '</label>' . form::field('user_firstname', 20, 255, html::escapeHTML($user_firstname)) . '</p>' . '<p><label for="user_displayname">' . __('Display name:') . '</label>' . form::field('user_displayname', 20, 255, html::escapeHTML($user_displayname)) . '</p>' . '<p><label for="user_email">' . __('Email:') . '</label>' . form::field('user_email', 20, 255, html::escapeHTML($user_email)) . '</p>' . '<p><label for="user_url">' . __('URL:') . '</label>' . form::field('user_url', 30, 255, html::escapeHTML($user_url)) . '</p>' . '<p><label for="user_lang">' . __('Language for my interface:') . '</label>' . form::combo('user_lang', $lang_combo, $user_lang, 'l10n') . '</p>' . '<p><label for="user_tz">' . __('My timezone:') . '</label>' . form::combo('user_tz', dt::getZones(true, true), $user_tz) . '</p>'; if ($core->auth->allowPassChange()) { echo '<h4 class="vertical-separator pretty-title">' . __('Change my password') . '</h4>' . '<div class="pw-table">' . '<p class="pw-cell"><label for="new_pwd">' . __('New password:'******'</label>' . form::password('new_pwd', 20, 255, '', '', '', false, ' data-indicator="pwindicator" ') . '</p>' . '<div id="pwindicator">' . ' <div class="bar"></div>' . ' <p class="label no-margin"></p>' . '</div>' . '</div>' . '<p><label for="new_pwd_c">' . __('Confirm new password:'******'</label>' . form::password('new_pwd_c', 20, 255) . '</p>' . '<p><label for="cur_pwd">' . __('Your current password:'******'</label>' . form::password('cur_pwd', 20, 255) . '</p>' . '<p class="form-note warn">' . __('If you have changed your email or password you must provide your current password to save these modifications.') . '</p>'; } echo '<p class="clear vertical-separator">' . $core->formNonce() . '<input type="submit" accesskey="s" value="' . __('Update my profile') . '" /></p>' . '</form>' . '</div>'; # User options : some from actual user profile, dashboard modules, ... echo '<div class="multi-part" id="user-options" title="' . __('My options') . '">';
asort($order); $order = array_keys($order); } elseif (!empty($_POST['links_order'])) { $order = explode(',', $_POST['links_order']); } if (!empty($_POST['saveorder']) && !empty($order)) { foreach ($order as $pos => $l) { $pos = (int) $pos + 1; try { $blogroll->updateOrder($l, $pos); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if (!$core->error->flag()) { dcPage::addSuccessNotice(__('Items order has been successfully updated')); http::redirect($p_url); } } # Get links try { $rs = $blogroll->getLinks(); } catch (Exception $e) { $core->error->add($e->getMessage()); } ?> <html> <head> <title><?php echo __('Blogroll'); ?>
} $blowup_user['top_image'] = in_array($_POST['top_image'], $top_images) ? $_POST['top_image'] : 'default'; $blowup_user['body_bg_c'] = dcThemeConfig::adjustColor($_POST['body_bg_c']); $blowup_user['body_bg_g'] = in_array($_POST['body_bg_g'], $gradient_types) ? $_POST['body_bg_g'] : ''; $blowup_user['post_comment_bg_c'] = dcThemeConfig::adjustColor($_POST['post_comment_bg_c']); $blowup_user['post_commentmy_bg_c'] = dcThemeConfig::adjustColor($_POST['post_commentmy_bg_c']); $blowup_user['prelude_c'] = dcThemeConfig::adjustColor($_POST['prelude_c']); blowupConfig::createImages($blowup_user, $uploaded); } if ($can_write_css) { blowupConfig::createCss($blowup_user); } $core->blog->settings->addNamespace('themes'); $core->blog->settings->themes->put('blowup_style', serialize($blowup_user)); $core->blog->triggerBlog(); dcPage::addSuccessNotice(__('Theme configuration has been successfully updated.')); http::redirect($p_url); } catch (Exception $e) { $core->error->add($e->getMessage()); } } ?> <html> <head> <title><?php echo __('Blowup configuration'); ?> </title> <?php echo dcPage::jsLoad(dcPage::getPF('blowupConfig/config.js')); ?>
if (!empty($_POST['save_blog_prefs'])) { if (!empty($_POST['pref_src'])) { foreach (array_reverse($file->media_thumb) as $s => $v) { if ($v == $_POST['pref_src']) { $core->blog->settings->system->put('media_img_default_size', $s); break; } } } if (!empty($_POST['pref_alignment'])) { $core->blog->settings->system->put('media_img_default_alignment', $_POST['pref_alignment']); } if (!empty($_POST['pref_insertion'])) { $core->blog->settings->system->put('media_img_default_link', $_POST['pref_insertion'] == 'link'); } dcPage::addSuccessNotice(__('Default media insertion settings have been successfully updated.')); $core->adminurl->redirect('admin.media.item', $page_url_params); } # Function to get image title based on meta function dcGetImageTitle($file, $pattern, $dto_first = false, $no_date_alone = false) { $res = array(); $pattern = preg_split('/\\s*;;\\s*/', $pattern); $sep = ', '; $dates = 0; $items = 0; foreach ($pattern as $v) { if ($v == 'Title') { if ($file->media_title != '') { $res[] = $file->media_title; }
if (!$pings_uris) { $pings_uris = array(); } if (isset($_POST['pings_srv_name'])) { $pings_srv_name = is_array($_POST['pings_srv_name']) ? $_POST['pings_srv_name'] : array(); $pings_srv_uri = is_array($_POST['pings_srv_uri']) ? $_POST['pings_srv_uri'] : array(); $pings_uris = array(); foreach ($pings_srv_name as $k => $v) { if (trim($v) && trim($pings_srv_uri[$k])) { $pings_uris[trim($v)] = trim($pings_srv_uri[$k]); } } $core->blog->settings->addNamespace('pings'); $core->blog->settings->pings->put('pings_active', !empty($_POST['pings_active']), null, null, true, true); $core->blog->settings->pings->put('pings_uris', serialize($pings_uris), null, null, true, true); dcPage::addSuccessNotice(__('Settings have been successfully updated.')); http::redirect($p_url); } } catch (Exception $e) { $core->error->add($e->getMessage()); } ?> <html> <head> <title><?php echo __('Pings'); ?> </title> </head> <body>
public static function doChangePostLang($core, dcPostsActionsPage $ap, $post) { $posts_ids = $ap->getIDs(); if (empty($posts_ids)) { throw new Exception(__('No entry selected')); } if (isset($post['new_lang'])) { $new_lang = $post['new_lang']; $cur = $core->con->openCursor($core->prefix . 'post'); $cur->post_lang = $new_lang; $cur->update('WHERE post_id ' . $core->con->in($posts_ids)); dcPage::addSuccessNotice(sprintf(__('%d entry has been successfully set to language "%s"', '%d entries have been successfully set to language "%s"', count($posts_ids)), count($posts_ids), html::escapeHTML(l10n::getLanguageName($new_lang)))); $ap->redirect(true); } else { $ap->beginPage(dcPage::breadcrumb(array(html::escapeHTML($core->blog->name) => '', $ap->getCallerTitle() => $ap->getRedirection(true), __('Change language for this selection') => ''))); # lang list # Languages combo $rs = $core->blog->getLangs(array('order' => 'asc')); $all_langs = l10n::getISOcodes(0, 1); $lang_combo = array('' => '', __('Most used') => array(), __('Available') => l10n::getISOcodes(1, 1)); while ($rs->fetch()) { if (isset($all_langs[$rs->post_lang])) { $lang_combo[__('Most used')][$all_langs[$rs->post_lang]] = $rs->post_lang; unset($lang_combo[__('Available')][$all_langs[$rs->post_lang]]); } else { $lang_combo[__('Most used')][$rs->post_lang] = $rs->post_lang; } } unset($all_langs); unset($rs); echo '<form action="' . $ap->getURI() . '" method="post">' . $ap->getCheckboxes() . '<p><label for="new_lang" class="classic">' . __('Entry language:') . '</label> ' . form::combo('new_lang', $lang_combo, ''); echo $core->formNonce() . $ap->getHiddenFields() . form::hidden(array('action'), 'lang') . '<input type="submit" value="' . __('Save') . '" /></p>' . '</form>'; $ap->endPage(); } }