Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 5
0
 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();
     }
 }
Ejemplo n.º 6
0
        $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.'));
    }
Ejemplo n.º 7
0
// 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>
Ejemplo n.º 8
0
            $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.'));
Ejemplo n.º 9
0
# 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');
}
Ejemplo n.º 10
0
                $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;
?>
Ejemplo n.º 11
0
        } 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 
Ejemplo n.º 12
0
        } 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'));
Ejemplo n.º 13
0
            $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) . '&amp;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') => ''));
Ejemplo n.º 14
0
<?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';
Ejemplo n.º 15
0
        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>';
Ejemplo n.º 16
0
        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.'));
}
Ejemplo n.º 17
0
        $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());
    }
}
Ejemplo n.º 18
0
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);
Ejemplo n.º 19
0
        # 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');
Ejemplo n.º 20
0
        } 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') . ' &rsaquo; <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') . '" /> ' . ' &nbsp; <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;
    }
}
Ejemplo n.º 21
0
        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>';
Ejemplo n.º 22
0
 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;
 }
Ejemplo n.º 23
0
            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';
Ejemplo n.º 24
0
        }
    }
    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();
?>
Ejemplo n.º 25
0
        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') . '">';
Ejemplo n.º 26
0
    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');
?>
Ejemplo n.º 27
0
            }
            $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'));
?>
Ejemplo n.º 28
0
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;
            }
Ejemplo n.º 29
0
    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>
Ejemplo n.º 30
0
 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();
     }
 }