Allow possibility to style the backend (surrounding layout + entry editor so far)

This commit is contained in:
Garvin Hicking 2007-05-30 11:20:53 +00:00
parent a9e86ca58b
commit 0c85bcbcc7
7 changed files with 839 additions and 211 deletions

View File

@ -3,6 +3,13 @@
Version 1.2 ()
------------------------------------------------------------------------
* Add admin backend templates for main area and the entry editor.
Falls back to default PHP output if Smarty cannot be utilized.
(garvinhicking)
* Fix properly reinstantiating sessions and properly deleting cookies
when requested (garvinhicking)
* Add support for sqlite3 (http://php-sqlite3.sourceforge.net/), by
geekmug

View File

@ -336,8 +336,24 @@ function serendipity_load_configuration($author = null) {
*/
function serendipity_logout() {
$_SESSION['serendipityAuthedUser'] = false;
@session_destroy();
serendipity_session_destroy();
serendipity_deleteCookie('author_information');
serendipity_deleteCookie('author_token');
}
/**
* Destroys a session, keeps important stuff intact.
* @access public
* @return null
*/
function serendipity_session_destroy() {
$no_smarty = $_SESSION['no_smarty'];
@session_destroy();
session_regenerate_id();
session_start();
$_SESSION['SERVER_GENERATED_SID'] = true;
$_SESSION['no_smarty'] = $no_smarty;
}
/**
@ -437,7 +453,7 @@ function serendipity_checkAutologin($ident, $iv) {
if ($autologin['name'] < (time()-86400)) {
// Issued autologin cookie has been issued more than 1 day ago. Re-Issue new cookie, invalidate old one to prevent abuse
serendipity_header('X-ReIssue-Cookie: +' . (time() - $autologin['name']) . 's');
if ($serendipity['expose_s9y']) serendipity_header('X-ReIssue-Cookie: +' . (time() - $autologin['name']) . 's');
serendipity_issueAutologin($cookie);
}
@ -445,9 +461,9 @@ function serendipity_checkAutologin($ident, $iv) {
}
function serendipity_setAuthorToken() {
$hash = sha1(uniqid(rand(), true));
serendipity_setCookie('author_token', $hash);
$_SESSION['author_token'] = $hash;
$hash = sha1(uniqid(rand(), true));
serendipity_setCookie('author_token', $hash);
$_SESSION['author_token'] = $hash;
}
/**
@ -516,7 +532,7 @@ function serendipity_authenticate_author($username = '', $password = '', $is_md5
return true;
} else {
$_SESSION['serendipityAuthedUser'] = false;
@session_destroy();
serendipity_session_destroy();
}
}
@ -613,7 +629,12 @@ function serendipity_setCookie($name, $value, $securebyprot = true) {
function serendipity_deleteCookie($name) {
global $serendipity;
setcookie("serendipity[$name]", '', time()-4000);
$host = $_SERVER['HTTP_HOST'];
if ($pos = strpos($host, ":")) {
$host = substr($host, 0, $pos);
}
setcookie("serendipity[$name]", '', time()-4000, $serendipity['serendipityHTTPPath'], $host);
unset($_COOKIE[$name]);
unset($serendipity['COOKIE'][$name]);
}
@ -874,7 +895,7 @@ function serendipity_getSessionLanguage() {
return $serendipity['lang'];
} else {
$_SESSION['serendipityLanguage'] = $lang;
if (! is_null($serendipity['detected_lang'])) {
if (!is_null($serendipity['detected_lang'])) {
if ($serendipity['expose_s9y']) serendipity_header('X-Serendipity-InterfaceLang: ' . $lang);
}
}

View File

@ -36,31 +36,41 @@ function serendipity_printEntryForm($targetURL, $hiddens = array(), $entry = arr
$draftP = '';
$categoryselector_expanded = false;
$template_vars = array();
serendipity_plugin_api::hook_event('backend_entryform', $entry);
if ( (isset($entry['isdraft']) && serendipity_db_bool($entry['isdraft'])) ||
(!isset($entry['isdraft']) && $serendipity['publishDefault'] == 'draft') ) {
$draftD = ' selected="selected"';
$template_vars['draft_mode'] = 'draft';
} else {
$draftP = ' selected="selected"';
$template_vars['draft_mode'] = 'publish';
}
if (isset($entry['moderate_comments']) && (serendipity_db_bool($entry['moderate_comments']))) {
$template_vars['moderate_comments'] = true;
$moderate_comments = ' checked="checked"';
} elseif (!isset($entry['moderate_comments']) && ($serendipity['moderateCommentsDefault'] == 'true' || $serendipity['moderateCommentsDefault'] === true)) {
// This is the default on creation of a new entry and depends on the "moderateCommentsDefault" variable of the configuration.
$moderate_comments = ' checked="checked"';
$template_vars['moderate_comments'] = true;
} else {
$moderate_comments = '';
$template_vars['moderate_comments'] = false;
}
if (isset($entry['allow_comments']) && (serendipity_db_bool($entry['allow_comments']))) {
$template_vars['allow_comments'] = true;
$allow_comments = ' checked="checked"';
} elseif ((!isset($entry['allow_comments']) || $entry['allow_comments'] !== 'false') && (!isset($serendipity['allowCommentsDefault']) || $serendipity['allowCommentsDefault'] == 'true' || $serendipity['allowCommentsDefault'] === true)) {
// This is the default on creation of a new entry and depends on the "allowCommentsDefault" variable of the configuration.
$template_vars['allow_comments'] = true;
$allow_comments = ' checked="checked"';
} else {
$template_vars['allow_comments'] = false;
$allow_comments = '';
}
@ -94,10 +104,19 @@ function serendipity_printEntryForm($targetURL, $hiddens = array(), $entry = arr
if (is_array($cats = serendipity_fetchCategories())) {
$cats = serendipity_walkRecursive($cats, 'categoryid', 'parentid', VIEWMODE_THREADED);
foreach ( $cats as $cat ) {
$cat_list .= '<option value="'. $cat['categoryid'] .'"'. (in_array($cat['categoryid'], $selected) ? ' selected="selected"' : '') .'>'. str_repeat('&nbsp;', $cat['depth']) . $cat['category_name'] .'</option>' . "\n";
foreach ($cats as $cat) {
if (in_array($cat['categoryid'], $selected)) {
$cat['is_selected'] = true;
}
$cat['depth_pad'] = str_repeat('&nbsp;', $cat['depth']);
$template_vars['category_options'][] = $cat;
$cat_list .= '<option value="'. $cat['categoryid'] .'"'. ($cat['is_selected'] ? ' selected="selected"' : '') .'>'. $cat['depth_pad'] . $cat['category_name'] .'</option>' . "\n";
}
}
$cat_list .= '</select>' . $n;
if (!empty($serendipity['GET']['title'])) {
@ -120,6 +139,42 @@ function serendipity_printEntryForm($targetURL, $hiddens = array(), $entry = arr
$hidden .= ' <input type="hidden" name="serendipity[timestamp]" value="' . (isset($entry['timestamp']) ? serendipity_serverOffsetHour($entry['timestamp']) : serendipity_serverOffsetHour(time())) . '" />' . $n;
$hidden .= ' <input type="hidden" name="serendipity[preview]" value="false" />';
$hidden .= ' ' . serendipity_setFormToken();
if (is_object($serendipity['smarty'])) {
if (isset($serendipity['allowDateManipulation']) && $serendipity['allowDateManipulation']) {
$template_vars['allowDateManipulation'] = true;
}
if ((!empty($entry['extended']) || !empty($serendipity['COOKIE']['toggle_extended'])) && !$serendipity['wysiwyg']) {
$template_vars['show_wysiwyg'] = true;
}
if (eregi($serendipity['EditorBrowsers'], $_SERVER['HTTP_USER_AGENT']) ) {
$template_vars['wysiwyg_advanced'] = true;
}
$template_vars['timestamp'] = serendipity_serverOffsetHour(isset($entry['timestamp']) && $entry['timestamp'] > 0 ? $entry['timestamp'] : time());
$template_vars['reset_timestamp'] = serendipity_serverOffsetHour(time());
$template_vars['hidden'] = $hidden;
$template_vars['errMsG'] = $errMsg;
$template_vars['entry'] =& $entry;
$template_vars['targetURL'] = $targetURL;
$template_vars['cat_count'] = count($cats)+1;
$template_vars['cat_state'] = $categoryselector_expanded ? 'on' : 'off';
$template_vars['wysiwyg'] = $serendipity['wysiwyg'];
$template_vars['serendipityRightPublish'] = $_SESSION['serendipityRightPublish'];
$template_vars['wysiwyg_blocks'] = array(
'body' => 'serendipity[body]',
'extended' => 'serendipity[extended]'
);
$serendipity['smarty']->register_modifier('emit_htmlarea_code', 'serendipity_emit_htmlarea_code');
$serendipity['smarty']->assign('admin_view', 'entryform');
$serendipity['smarty']->assign_by_ref('entry_vars', $template_vars);
$serendipity['smarty']->display(serendipity_getTemplateFile('admin/entries.tpl', 'serendipityPath'));
return true;
}
/* HTML CODE BELOW IS FOR FALLBACK PORTABILITY ONLY - MODIFY CODE IN TEMPLATE ADMIN/ENTRIES.TPL INSTEAD! */
if (!empty($errMsg)) {
?>
<div class="serendipityAdminMsgError"><?php echo $errMsg; ?></div>

View File

@ -695,12 +695,20 @@ function serendipity_smarty_init($vars = array()) {
// Beware: Smarty is used in the Admin backend, despite of this.
include $template_dir . '/template.inc.php';
} else {
// Default Smarty Engine will be used
// Set a session variable if Smarty fails:
$prev_smarty = $_SESSION['no_smarty'];
$_SESSION['no_smarty'] = true;
// Default Smarty Engine will be used
@define('SMARTY_DIR', S9Y_PEAR_PATH . 'Smarty/libs/');
if (!class_exists('Smarty')) {
require SMARTY_DIR . 'Smarty.class.php';
include SMARTY_DIR . 'Smarty.class.php';
}
if (!class_exists('Smarty')) {
return false;
}
$serendipity['smarty'] = new Smarty;
if ($serendipity['production'] === 'debug') {
$serendipity['smarty']->force_compile = true;
@ -714,9 +722,13 @@ function serendipity_smarty_init($vars = array()) {
$serendipity['smarty']->compile_dir = $serendipity['serendipityPath'] . PATH_SMARTY_COMPILE;
if (!is_dir($serendipity['smarty']->compile_dir) || !is_writable($serendipity['smarty']->compile_dir)) {
serendipity_die(sprintf(DIRECTORY_WRITE_ERROR, $serendipity['smarty']->compile_dir));
printf(DIRECTORY_WRITE_ERROR, $serendipity['smarty']->compile_dir);
return false;
}
// Hooray for Smarty:
$_SESSION['no_smarty'] = $prev_smarty;
$serendipity['smarty']->config_dir = $template_dir;
$serendipity['smarty']->secure_dir = array($serendipity['serendipityPath'] . $serendipity['templatePath']);
$serendipity['smarty']->security_settings['MODIFIER_FUNCS'] = array('sprintf', 'sizeof', 'count', 'rand', 'print_r', 'str_repeat');
@ -732,6 +744,7 @@ function serendipity_smarty_init($vars = array()) {
$serendipity['smarty']->register_modifier('formatTime', 'serendipity_smarty_formatTime');
$serendipity['smarty']->register_modifier('serendipity_utf8_encode', 'serendipity_utf8_encode');
$serendipity['smarty']->register_modifier('ifRemember', 'serendipity_ifRemember');
$serendipity['smarty']->register_modifier('checkPermission', 'serendipity_checkPermission');
$serendipity['smarty']->register_function('serendipity_printSidebar', 'serendipity_smarty_printSidebar');
$serendipity['smarty']->register_function('serendipity_hookPlugin', 'serendipity_smarty_hookPlugin');

View File

@ -30,7 +30,7 @@ if (isset($serendipity['GET']['adminModule']) && $serendipity['GET']['adminModul
if (!isset($_SESSION['author_token']) || !isset($serendipity['COOKIE']['author_token']) ||
($_SESSION['author_token'] !== $serendipity['COOKIE']['author_token'])) {
$_SESSION['serendipityAuthedUser'] = false;
@session_destroy();
serendipity_session_destroy();
}
if (!serendipity_userLoggedIn()) {
// Try again to log in, this time with enabled external authentication event hook
@ -44,79 +44,41 @@ if (serendipity_is_iframe()) {
return true;
}
?>
<html>
<head>
<title><?php echo SERENDIPITY_ADMIN_SUITE; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo LANG_CHARSET; ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo $css_file; ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo serendipity_getTemplateFile('admin/pluginmanager.css'); ?>" />
if (isset($serendipity['GET']['no_smarty']) || isset($serendipity['no_smarty'])) {
$_SESSION['no_smarty'] = true;
}
<script type="text/javascript">
function spawn() {
if (self.Spawnextended) {
Spawnextended();
}
$admin_css_file = serendipity_getTemplateFile('admin/pluginmanager.css');
if (self.Spawnbody) {
Spawnbody();
}
if (defined('IS_up2date') && IS_up2date === true && IS_installed === true) {
$admin_installed = true;
} else {
$admin_installed = false;
}
if (self.Spawnnugget) {
Spawnnugget();
}
}
$is_logged_in = serendipity_userLoggedIn();
function SetCookie(name, value) {
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + (60*60*24*30));
document.cookie = 'serendipity[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString();
}
if ($is_logged_in) {
$self_info = sprintf(USER_SELF_INFO, $serendipity['serendipityUser'], $serendipity['permissionLevels'][$serendipity['serendipityUserlevel']]);
} else {
$self_info = '';
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
if (isset($serendipity['GET']['noBanner']) || isset($serendipity['POST']['noBanner'])) {
$no_banner = true;
} else {
$no_banner = false;
}
</script>
<?php
if (defined('IS_up2date') && IS_up2date === true) {
serendipity_plugin_api::hook_event('backend_header', $serendipity);
}
?>
</head>
<body id="serendipity_admin_page" onload="spawn()">
<table cellspacing="0" cellpadding="0" border="0" id="serendipityAdminFrame">
<?php if (!isset($serendipity['GET']['noBanner']) && !isset($serendipity['POST']['noBanner'])) { ?>
<tr>
<td colspan="2" id="serendipityAdminBanner">
<?php if ( IS_installed === true && IS_up2date === true ) { ?>
<h1><?php echo SERENDIPITY_ADMIN_SUITE ?></h1>
<h2><?php echo $serendipity['blogTitle'] ?></h2>
<?php } elseif ( IS_installed === false || IS_up2date === false ) { ?>
<h1><?php echo SERENDIPITY_INSTALLATION ?></h1>
<?php } ?>
</td>
</tr>
<tr>
<td colspan="2" id="serendipityAdminInfopane">
<?php if (serendipity_userLoggedIn()) { ?>
<?php echo sprintf(USER_SELF_INFO, $serendipity['serendipityUser'], $serendipity['permissionLevels'][$serendipity['serendipityUserlevel']]) ?>
<?php } ?>
</td>
</tr>
<?php } ?>
<tr valign="top">
<?php
if (isset($serendipity['GET']['noSidebar']) || isset($serendipity['POST']['noSidebar'])) {
$no_sidebar = true;
} else {
$no_sidebar = false;
}
$file = '';
if (!isset($serendipity['serendipityPath']) || IS_installed === false || IS_up2date === false ) {
$use_installer = true;
if (IS_installed === false) {
$file = 'include/admin/installer.inc.php';
} elseif ( IS_up2date === false ) {
@ -124,141 +86,19 @@ if (!isset($serendipity['serendipityPath']) || IS_installed === false || IS_up2d
} else {
$file = ''; // For register_global, safety
}
?>
<td class="serendipityAdminContent" colspan="2">
<?php require(S9Y_INCLUDE_PATH . $file); ?>
<?php
} elseif ( serendipity_userLoggedIn() == false ) {
$out = array();
serendipity_plugin_api::hook_event('backend_login_page', $out);
?>
<td colspan="2" class="serendipityAdminContent">
<div align="center"><?php echo WELCOME_TO_ADMIN ?><br /><?php echo PLEASE_ENTER_CREDENTIALS ?></div>
<?php echo $out['header']; ?>
<br />
<?php if ( isset($serendipity['POST']['action']) && !serendipity_userLoggedIn() ) { ?>
<div class="serendipityAdminMsgError"><?php echo WRONG_USERNAME_OR_PASSWORD; ?></div>
<?php } ?>
<form action="serendipity_admin.php" method="post">
<input type="hidden" name="serendipity[action]" value="admin" />
<table cellspacing="10" cellpadding="0" border="0" align="center">
<tr>
<td><?php echo USERNAME ?></td>
<td><input type="text" name="serendipity[user]" /></td>
</tr>
<tr>
<td><?php echo PASSWORD ?></td>
<td><input type="password" name="serendipity[pass]" /></td>
</tr>
<tr>
<td colspan="2"><input id="autologin" type="checkbox" name="serendipity[auto]" /><label for="autologin"> <?php echo AUTOMATIC_LOGIN ?></label></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="<?php echo LOGIN ?> &gt;" class="serendipityPrettyButton" /></td>
</tr>
<?php echo $out['table']; ?>
</table>
</form>
<?php echo $out['footer']; ?>
<a href="<?php echo $serendipity['serendipityHTTPPath']; ?>"><?php echo BACK_TO_BLOG;?></a>
<?php
} else {
?>
<?php if (!isset($serendipity['GET']['noSidebar']) && !isset($serendipity['POST']['noSidebar'])) { ?>
<td id="serendipitySideBar">
<ul class="serendipitySideBarMenu">
<li><a href="serendipity_admin.php"><?php echo ADMIN_FRONTPAGE; ?></a></li>
<?php if (serendipity_checkPermission('personalConfiguration')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=personal"><?php echo PERSONAL_SETTINGS; ?></a></li>
<?php } ?>
</ul>
<br />
<ul class="serendipitySideBarMenu">
<?php if (serendipity_checkPermission('adminEntries') || serendipity_checkPermission('adminEntriesPlugins')) { ?>
<li class="serendipitySideBarMenuHead"><?php echo ADMIN_ENTRIES ?></li>
<?php if (serendipity_checkPermission('adminEntries')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=new"><?php echo NEW_ENTRY; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=editSelect"><?php echo EDIT_ENTRIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminComments')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=comments"><?php echo COMMENTS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminCategories')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=category&amp;serendipity[adminAction]=view"><?php echo CATEGORIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminEntries') || serendipity_checkPermission('adminEntriesPlugins')) { ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_entries', $serendipity); ?>
<?php } ?>
</ul>
<?php } ?>
<?php if (serendipity_checkPermission('adminImages')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo MEDIA; ?></li>
<?php if (serendipity_checkPermission('adminImagesAdd')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=addSelect"><?php echo ADD_MEDIA; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesView')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media"><?php echo MEDIA_LIBRARY; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesDirectories')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=directorySelect"><?php echo MANAGE_DIRECTORIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesSync')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=sync" onclick="return confirm('<?php echo WARNING_THIS_BLAHBLAH; ?>');"><?php echo CREATE_THUMBS; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_entries_images', $serendipity); ?>
</ul>
<?php } ?>
<?php if (serendipity_checkPermission('adminTemplates') || serendipity_checkPermission('adminPlugins')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo APPEARANCE; ?></li>
<?php if (serendipity_checkPermission('adminTemplates')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=templates"><?php echo MANAGE_STYLES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminPlugins')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=plugins"><?php echo CONFIGURE_PLUGINS; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_admin_appearance', $serendipity); ?>
</ul>
<?php } ?>
<?php if (serendipity_checkPermission('siteConfiguration') || serendipity_checkPermission('blogConfiguration') || serendipity_checkPermission('adminUsers') || serendipity_checkPermission('adminUsersGroups') || serendipity_checkPermission('adminImport')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo ADMIN; ?></li>
<?php if (serendipity_checkPermission('siteConfiguration') || serendipity_checkPermission('blogConfiguration')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=configuration"><?php echo CONFIGURATION; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminUsers')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=users"><?php echo MANAGE_USERS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminUsersGroups')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=groups"><?php echo MANAGE_GROUPS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImport')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=import"><?php echo IMPORT_ENTRIES; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=export"><?php echo EXPORT_ENTRIES; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_admin', $serendipity); ?>
</ul>
<?php } ?>
<br />
<ul class="serendipitySideBarMenu">
<li><a href="<?php echo $serendipity['baseURL']; ?>"><?php echo BACK_TO_BLOG; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=logout"><?php echo LOGOUT; ?></a></li>
</ul>
$use_installer = false;
}
</td>
<?php } ?>
<td class="serendipityAdminContent">
<?php
$post_action = $serendipity['POST']['action'];
$main_content = '';
if (!$use_installer && $is_logged_in) {
if (!isset($serendipity['GET']['adminModule'])) {
$serendipity['GET']['adminModule'] = (isset($serendipity['POST']['adminModule']) ? $serendipity['POST']['adminModule'] : '');
}
ob_start();
serendipity_checkXSRF();
switch($serendipity['GET']['adminModule']) {
@ -379,6 +219,232 @@ if (!isset($serendipity['serendipityPath']) || IS_installed === false || IS_up2d
include S9Y_INCLUDE_PATH . 'include/admin/overview.inc.php';
break;
}
$main_content = ob_get_contents();
ob_end_clean();
}
if (!$use_installer && !$_SESSION['no_smarty'] && serendipity_smarty_init()) {
$poll_admin_vars = array('css_file', 'admin_css_file', 'main_content', 'no_banner', 'no_sidebar', 'post_action', 'is_logged_in', 'admin_installed', 'self_info', 'use_installer');
$admin_vars = array();
foreach($poll_admin_vars AS $poll_admin_var) {
$admin_vars[$poll_admin_var] =& $$poll_admin_var;
}
$admin_vars['out'] = array();
$admin_vars['no_create'] = $serendipity['no_create'];
if ($serendipity['expose_s9y']) {
$admin_vars['version_info'] = sprintf(ADMIN_FOOTER_POWERED_BY, $serendipity['versionInstalled'], phpversion());
} else {
$admin_vars['version_info'] = sprintf(ADMIN_FOOTER_POWERED_BY, '', '');
}
$serendipity['smarty']->assign_by_ref('admin_vars', $admin_vars);
$serendipity['smarty']->display(serendipity_getTemplateFile('admin/index.tpl', 'serendipityPath'));
} else {
?>
<html>
<head>
<title><?php echo SERENDIPITY_ADMIN_SUITE; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo LANG_CHARSET; ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo $css_file; ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo $admin_css_file; ?>" />
<script type="text/javascript">
function spawn() {
if (self.Spawnextended) {
Spawnextended();
}
if (self.Spawnbody) {
Spawnbody();
}
if (self.Spawnnugget) {
Spawnnugget();
}
}
function SetCookie(name, value) {
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + (60*60*24*30));
document.cookie = 'serendipity[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString();
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
</script>
<?php
if ($admin_installed) {
serendipity_plugin_api::hook_event('backend_header', $serendipity);
}
?>
</head>
<body id="serendipity_admin_page" onload="spawn()">
<table cellspacing="0" cellpadding="0" border="0" id="serendipityAdminFrame">
<?php if (!$no_banner) { ?>
<tr>
<td colspan="2" id="serendipityAdminBanner">
<?php if ($admin_installed) { ?>
<h1><?php echo SERENDIPITY_ADMIN_SUITE ?></h1>
<h2><?php echo $serendipity['blogTitle'] ?></h2>
<?php } else { ?>
<h1><?php echo SERENDIPITY_INSTALLATION ?></h1>
<?php } ?>
</td>
</tr>
<tr>
<td colspan="2" id="serendipityAdminInfopane">
<?php if ($is_logged_in) { ?>
<?php echo $self_info; ?>
<?php } ?>
</td>
</tr>
<?php } ?>
<tr valign="top">
<?php
if ($use_installer) {
?>
<td class="serendipityAdminContent" colspan="2">
<?php require(S9Y_INCLUDE_PATH . $file); ?>
<?php
} elseif (!$is_logged_in) {
$out = array();
serendipity_plugin_api::hook_event('backend_login_page', $out);
?>
<td colspan="2" class="serendipityAdminContent">
<div align="center"><?php echo WELCOME_TO_ADMIN ?><br /><?php echo PLEASE_ENTER_CREDENTIALS ?></div>
<?php echo $out['header']; ?>
<br />
<?php if ($post_action != '' && !$is_logged_in ) { ?>
<div class="serendipityAdminMsgError"><?php echo WRONG_USERNAME_OR_PASSWORD; ?></div>
<?php } ?>
<form action="serendipity_admin.php" method="post">
<input type="hidden" name="serendipity[action]" value="admin" />
<table cellspacing="10" cellpadding="0" border="0" align="center">
<tr>
<td><?php echo USERNAME ?></td>
<td><input type="text" name="serendipity[user]" /></td>
</tr>
<tr>
<td><?php echo PASSWORD ?></td>
<td><input type="password" name="serendipity[pass]" /></td>
</tr>
<tr>
<td colspan="2"><input id="autologin" type="checkbox" name="serendipity[auto]" /><label for="autologin"> <?php echo AUTOMATIC_LOGIN ?></label></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="<?php echo LOGIN ?> &gt;" class="serendipityPrettyButton" /></td>
</tr>
<?php echo $out['table']; ?>
</table>
</form>
<?php echo $out['footer']; ?>
<a href="<?php echo $serendipity['serendipityHTTPPath']; ?>"><?php echo BACK_TO_BLOG;?></a>
<?php
} else {
if (!$no_sidebar) { ?>
<td id="serendipitySideBar">
<ul class="serendipitySideBarMenu">
<li><a href="serendipity_admin.php"><?php echo ADMIN_FRONTPAGE; ?></a></li>
<?php if (serendipity_checkPermission('personalConfiguration')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=personal"><?php echo PERSONAL_SETTINGS; ?></a></li>
<?php } ?>
</ul>
<br />
<ul class="serendipitySideBarMenu">
<?php if (serendipity_checkPermission('adminEntries') || serendipity_checkPermission('adminEntriesPlugins')) { ?>
<li class="serendipitySideBarMenuHead"><?php echo ADMIN_ENTRIES ?></li>
<?php if (serendipity_checkPermission('adminEntries')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=new"><?php echo NEW_ENTRY; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=editSelect"><?php echo EDIT_ENTRIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminComments')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=comments"><?php echo COMMENTS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminCategories')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=category&amp;serendipity[adminAction]=view"><?php echo CATEGORIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminEntries') || serendipity_checkPermission('adminEntriesPlugins')) { ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_entries', $serendipity); ?>
<?php } ?>
<?php } ?>
</ul>
<?php if (serendipity_checkPermission('adminImages')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo MEDIA; ?></li>
<?php if (serendipity_checkPermission('adminImagesAdd')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=addSelect"><?php echo ADD_MEDIA; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesView')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media"><?php echo MEDIA_LIBRARY; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesDirectories')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=directorySelect"><?php echo MANAGE_DIRECTORIES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImagesSync')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=sync" onclick="return confirm('<?php echo WARNING_THIS_BLAHBLAH; ?>');"><?php echo CREATE_THUMBS; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_entries_images', $serendipity); ?>
</ul>
<?php } ?>
<?php if (serendipity_checkPermission('adminTemplates') || serendipity_checkPermission('adminPlugins')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo APPEARANCE; ?></li>
<?php if (serendipity_checkPermission('adminTemplates')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=templates"><?php echo MANAGE_STYLES; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminPlugins')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=plugins"><?php echo CONFIGURE_PLUGINS; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_admin_appearance', $serendipity); ?>
</ul>
<?php } ?>
<?php if (serendipity_checkPermission('siteConfiguration') || serendipity_checkPermission('blogConfiguration') || serendipity_checkPermission('adminUsers') || serendipity_checkPermission('adminUsersGroups') || serendipity_checkPermission('adminImport')) { ?>
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead"><?php echo ADMIN; ?></li>
<?php if (serendipity_checkPermission('siteConfiguration') || serendipity_checkPermission('blogConfiguration')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=configuration"><?php echo CONFIGURATION; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminUsers')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=users"><?php echo MANAGE_USERS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminUsersGroups')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=groups"><?php echo MANAGE_GROUPS; ?></a></li>
<?php } ?>
<?php if (serendipity_checkPermission('adminImport')) { ?>
<li><a href="serendipity_admin.php?serendipity[adminModule]=import"><?php echo IMPORT_ENTRIES; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=export"><?php echo EXPORT_ENTRIES; ?></a></li>
<?php } ?>
<?php if ($serendipity['no_create'] !== true) serendipity_plugin_api::hook_event('backend_sidebar_admin', $serendipity); ?>
</ul>
<?php } ?>
<br />
<ul class="serendipitySideBarMenu">
<li><a href="<?php echo $serendipity['baseURL']; ?>"><?php echo BACK_TO_BLOG; ?></a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=logout"><?php echo LOGOUT; ?></a></li>
</ul>
</td>
<?php } ?>
<td class="serendipityAdminContent">
<?php
echo $main_content;
}
?>
</td>
@ -397,5 +463,4 @@ if (!isset($serendipity['serendipityPath']) || IS_installed === false || IS_up2d
</body>
</html>
<?php
/* vim: set sts=4 ts=4 expandtab : */
?>
}

View File

@ -0,0 +1,227 @@
<!-- ADMIN-ENTRY TEMPLATE: entries.tpl START -->
{*** POSSIBLE ERROR MESSAGES START ***}
{if $entry_vars.errMsg}
<div class="serendipityAdminMsgError">{$entry_vars.errMsg}</div>
{/if}
{*** POSSIBLE ERROR MESSAGES END ***}
{*** MAIN ENTRY FORM START ***}
<form {$entry_vars.entry.entry_form action="{$entry_vars.targetURL}" method="post" id="serendipityEntry" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px">
{$entry_vars.hidden}
<table class="serendipityEntryEdit" border="0" width="100%">
{*** ENTRY TITLE, DRAFT START ***}
<tr>
<td>
<b>{$CONST.TITLE}:</b>
</td>
<td colspan="2">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><input type="text" id="entryTitle" name="serendipity[title]" value="{$entry_vars.entry.title|@escape}" size="60" /></td>
<td align="right">
<select name="serendipity[isdraft]">
{if $entry_vars.serendipityRightPublish}
<option value="false" {if $entry_vars.draft_mode == 'publish'}selected="selected"{/if}>{CONST.PUBLISH}</option>
{/if}
<option value="true" {if $entry_vars.draft_mode == 'draft'}selected="selected"{/if}>{$CONST.DRAFT}</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
{*** ENTRY TITLE, DRAFT END ***}
<tr>
{*** ENTRY DATE,CATEGORY START ***}
{if $entry_vars.allowDateManipulation}
<td>
<b>{$CONST.DATE}:</b>
</td>
<td>
<input type="hidden" name="serendipity[chk_timestamp]" value="{$entry_vars.timestamp}" />
<input type="text" name="serendipity[new_timestamp]" id="serendipityNewTimestamp" value="{$entry_vars.timestamp|@formatTime:DATE_FORMAT_2}" />
<a href="#" onclick="document.getElementById('serendipityNewTimestamp').value = '{$entry_vars.reset_timestamp|@formatTime:DATE_FORMAT_2}'; return false;" title="{$CONST.RESET_DATE_DESC}"><img src="{serendipity_getFile file='admin/img/clock.png'}" border="0" style="vertical-align: text-top;" alt="{$CONST.RESET_DATE}" /></a>
</td>
<td align="right">
{else}
<td align="right" colspan="3">
{/if}
<a style="border:0; text-decoration: none" href="#" onclick="showItem('categoryselector'); return false" title="{$CONST.TOGGLE_OPTION}"><img src="{serendipity_getFile file='img/plus.png'}" id="option_categoryselector" style="border: 20px" alt="" border="0" /></a> <b>{$CONST.CATEGORY}:</b>
<select id="categoryselector" name="serendipity[categories][]" style="vertical-align: middle;" multiple="multiple">
<option value="0">[{$CONST.NO_CATEGORY}]</option>
{foreach from=$entry_vars.category_options item="entry_cat"}
<option value="{$entry_cat.categoryid}" {if $entry_cat.is_selected}selected="selected"{/if}>{$entry_cat.depth_pad}{$entry_cat.category_name}</option>
{/foreach}
</select>
<script type="text/javascript" language="JavaScript">
var plus_img = '{serendipity_getFile file='img/plus.png'}';
var minus_img = '{serendipity_getFile file='img/minus.png'}';
var cat_count = {$entry_vars.cat_count};
var selector_toggle = new Array();
var selector_store = new Array();
var selector_restore = new Array();
function checkSave() {
{serendipity_hookPlugin hook='backend_entry_checkSave' hookAll='true'}
return true;
}
selector_toggle['categoryselector'] = '{$entry_vars.cat_state}';
addLoadEvent(showItem);
</script>
<script type="text/javascript" language="JavaScript" src="{serendipity_getFile file='admin/category_selector.js'}">
</td>
</tr>
{*** ENTRY DATE,CATEGORY END ***}
{*** ENTRY TOOLBAR START ***}
<tr>
{if NOT $entry_vars.wysiwyg}
<td colspan="2"><b>{$CONST.ENTRY_BODY}</b></td>
<td align="right">
{if $entry_vars.wysiwyg_advanced}
<script type="text/javascript" language="JavaScript">
document.write('<input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<em>\',\'</em>\')" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<strong>\',\'</strong>\')" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<u>\',\'</u>\')" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insQ" value="{$CONST.QUOTE}" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms[\'serendipityEntry\'][\'serendipity[body]\'],\'<blockquote>\',\'</blockquote>\')" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insImage" value="{$CONST.MEDIA}" style="" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1\');" />');
document.write('<input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])" />');
</script>
{else}
<script type="text/javascript" language="JavaScript">
document.write('<input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'b\')">');
document.write('<input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'u\')">');
document.write('<input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms[\'serendipityEntry\'][\'serendipity[body]\'], \'i\')">');
document.write('<input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');
document.write('<input type="button" class="serendipityPrettyButton" value="{$CONST.MEDIA}" onclick="window.open(\'serendipity_admin_image_selector.php?serendipity[textarea]=body\', \'ImageSel\', \'width=800,height=600,toolbar=no\');">');
document.write('<input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms[\'serendipityEntry\'][\'serendipity[body]\'])">');
</script>
{/if}
{serendipity_hookPlugin hook="backend_entry_toolbar_extended" data=$entry_data.entry hookAll="true"}
</td>
{else}
<td colspan="2"><b>{$CONST.ENTRY_BODY}</b></td>
<td>{serendipity_hookPlugin hook="backend_entry_toolbar_extended" data=$entry_data.entry hookAll="true"}</td>
{/if}
</tr>
{*** ENTRY TOOLBAR END ***}
{*** ENTRY BODY START ***}
<tr>
<td colspan="3">
<textarea style="width: 100%" name="serendipity[body]" id="serendipity[body]" cols="80" rows="20">{$entry_vars.entry.body|@escape}</textarea>
</td>
</tr>
{*** ENTRY BODY START ***}
{*** ENTRY OPTIONS START ***}
<tr>
<td colspan="3">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="left" width="70%">
<input id="checkbox_allow_comments" type="checkbox" name="serendipity[allow_comments]" value="true" {if $entry_vars.allow_comments}checked="checked"{/if} /><label for="checkbox_allow_comments">{$CONST.COMMENTS_ENABLE; ?></label><br />
<input id="checkbox_moderate_comments" type="checkbox" name="serendipity[moderate_comments]" value="true" {if $entry_vars.moderate_comments}checked="checked"{/if} /><label for="checkbox_moderate_comments">{$CONST.COMMENTS_MODERATE}</label>
</td>
<td align="right" rowspan="2" valign="middle" width="30%">
<input accesskey="p" type="submit" value="- {$CONST.PREVIEW} -" class="serendipityPrettyButton" style="width: 150px" onclick="document.forms['serendipityEntry'].elements['serendipity[preview]'].value='true';" /><br />
<input accesskey="s" type="submit" onclick="return checkSave();" value="- {$CONST.SAVE} -" class="serendipityPrettyButton" style="width: 150px" />
</td>
</tr>
</table>
<br />
</td>
</tr>
{*** ENTRY OPTIONS END ***}
{*** EXTENDED ENTRY TOOLBAR START ***}
<tr>
<td colspan="2">
{if NOT $entry_vars.wysiwyg}
<a style="border:0; text-decoration: none" href="#" onclick="toggle_extended(true); return false;" title="{$CONST.TOGGLE_OPTION}"><img src="{serendipity_getFile file='img/plus.png'}" id="option_extended" alt="+/-" border="0" /></a>
{/if}
<b>{$CONST.EXTENDED_BODY}</b>
</td>
<td align="right">
{if NOT $entry_vars.wysiwyg}
<div id="tools_extended" style="display: none">
{if $entry_vars.wysiwyg_advanced}
<input type="button" class="serendipityPrettyButton" name="insI" value="I" accesskey="i" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<em>','</em>')" />
<input type="button" class="serendipityPrettyButton" name="insB" value="B" accesskey="b" style="font-weight: bold" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<strong>','</strong>')" />
<input type="button" class="serendipityPrettyButton" name="insU" value="U" accesskey="u" style="text-decoration: underline;" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<u>','</u>')" />
<input type="button" class="serendipityPrettyButton" name="insQ" value="{$CONST.QUOTE}" accesskey="q" style="font-style: italic" onclick="wrapSelection(document.forms['serendipityEntry']['serendipity[extended]'],'<blockquote>','</blockquote>')" />
<input type="button" class="serendipityPrettyButton" name="insJ" value="img" accesskey="j" onclick="wrapInsImage(document.forms['serendipityEntry']['serendipity[extended]'])" />
<input type="button" class="serendipityPrettyButton" name="insImage" value="{$CONST.MEDIA}" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no,scrollbars=1,scrollbars,resize=1,resizable=1');" />
<input type="button" class="serendipityPrettyButton" name="insURL" value="URL" accesskey="l" onclick="wrapSelectionWithLink(document.forms['serendipityEntry']['serendipity[extended]'])" />
{else}
<input type="button" class="serendipityPrettyButton" value=" B " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'b')">
<input type="button" class="serendipityPrettyButton" value=" U " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'u')">
<input type="button" class="serendipityPrettyButton" value=" I " onclick="serendipity_insBasic(document.forms['serendipityEntry']['serendipity[extended]'], 'i')">
<input type="button" class="serendipityPrettyButton" value="<img>" onclick="serendipity_insImage(document.forms['serendipityEntry']['serendipity[extended]'])">
<input type="button" class="serendipityPrettyButton" value="{$CONST.MEDIA}" onclick="window.open('serendipity_admin_image_selector.php?serendipity[textarea]=extended', 'ImageSel', 'width=800,height=600,toolbar=no');">
<input type="button" class="serendipityPrettyButton" value="Link" onclick="serendipity_insLink(document.forms['serendipityEntry']['serendipity[extended]'])">
{/if}
{serendipity_hookPlugin hook="backend_entry_toolbar_extended" data=$entry_data.entry hookAll="true"}
</div>
{else}
{serendipity_hookPlugin hook="backend_entry_toolbar_extended" data=$entry_data.entry hookAll="true"}
{/if}
</td>
</tr>
{*** EXTENDED ENTRY TOOLBAR END ***}
{*** EXTENDED ENTRY BODY START ***}
<tr>
<td colspan="3">
<textarea style="width: 100%;" name="serendipity[extended]" id="serendipity[extended]" cols="80" rows="20">{$entry_vars.entry.extended|@escape}</textarea>
{if NOT $entry_vars.wysiwyg}
<script type="text/javascript" language="JavaScript">
toggle_extended();
</script>
{/if}
</td>
</tr>
{*** EXTENDED ENTRY BODY END ***}
<tr>
<td colspan="3">
<br />
<fieldset>
<legend><b>{$CONST.ADVANCED_OPTIONS}</b></legend>
{*** EXTERNAL PLUGINS OUTPUT START ***}
{serendipity_hookPlugin hook="backend_display" data=$entry_vars.entry hookAll="true"}
{*** EXTERNAL PLUGINS OUTPUT END ***}
</fieldset>
</td>
</tr>
</table>
</form>
{*** MAIN ENTRY FORM END ***}
{*** SPAWN WYSIWYG EDITORS START ***}
{if $entry_vars.show_wysiwyg}
<script type="text/javascript" language="JavaScript">
toggle_extended();
</script>
{/if}
{if $entry_vars.wysiwyg}
{foreach from=$entry_vars.wysiwyg_blocks item="wysiwyg_block_item" key="wysiwyg_block_jsname"}
{$wysiwyg_block_item|emit_htmlarea_code:$wysiwyg_block_jsname}
{/foreach}
{serendipity_hookPlugin hook="backend_wysiwyg_finish" data=$entry_vars.wysiwyg_blocks hookAll="true"}
{/if}
{*** SPAWN WYSIWYG EDITORS END ***}
<script type="text/javascript" language="JavaScript" src="serendipity_define.js.php"></script>
<script type="text/javascript" language="JavaScript" src="serendipity_editor.js"></script>
<!-- ADMIN-ENTRY TEMPLATE: entries.tpl END -->

View File

@ -0,0 +1,240 @@
<html>
<head>
<!-- ADMIN-ENTRY TEMPLATE: index.tpl START -->
<title>{$CONST.SERENDIPITY_ADMIN_SUITE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$CONST.LANG_CHARSET}" />
<link rel="stylesheet" type="text/css" href="{$admin_vars.css_file}" />
<link rel="stylesheet" type="text/css" href="{$admin_vars.admin_css_file}" />
<script type="text/javascript">
{literal}
function spawn() {
if (self.Spawnextended) {
Spawnextended();
}
if (self.Spawnbody) {
Spawnbody();
}
if (self.Spawnnugget) {
Spawnnugget();
}
}
function SetCookie(name, value) {
var today = new Date();
var expire = new Date();
expire.setTime(today.getTime() + (60*60*24*30));
document.cookie = 'serendipity[' + name + ']='+escape(value) + ';expires=' + expire.toGMTString();
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
{/literal}
</script>
{if $admin_vars.admin_installed}
{serendipity_hookPlugin hook="backend_header" hookAll="true"}
{/if}
</head>
<body id="serendipity_admin_page" onload="spawn()">
<table cellspacing="0" cellpadding="0" border="0" id="serendipityAdminFrame">
{*** BANNER START ***}
{if NOT $admin_vars.no_banner}
<tr>
<td colspan="2" id="serendipityAdminBanner">
{if $admin_vars.admin_installed}
<h1>{$CONST.SERENDIPITY_ADMIN_SUITE}</h1>
<h2>{$blogTitle}</h2>
{else}
<h1>{$CONST.SERENDIPITY_INSTALLATION}</h1>
{/if}
</td>
</tr>
<tr>
<td colspan="2" id="serendipityAdminInfopane">
{if $admin_vars.is_logged_in}
{$admin_vars.self_info}
{/if}
</td>
</tr>
{/if}
{*** BANNER END ***}
<tr valign="top">
{if NOT $admin_vars.is_logged_in}
{*** LOGIN-AREA START ***}
{serendipity_hookPlugin hook="backend_header" data=$admin_vars.out hookAll="true"}
<td colspan="2" class="serendipityAdminContent">
<div align="center">{$CONST.WELCOME_TO_ADMIN}<br />
{$CONST.PLEASE_ENTER_CREDENTIALS}
{$admin_vars.out.header}
</div>
<br />
{if $admin_vars.post_action != '' AND NOT $admin_vars.is_logged_in}
<div class="serendipityAdminMsgError">{$CONST.WRONG_USERNAME_OR_PASSWORD}</div>
{/if}
<form action="serendipity_admin.php" method="post">
<input type="hidden" name="serendipity[action]" value="admin" />
<table cellspacing="10" cellpadding="0" border="0" align="center">
<tr>
<td>{$CONST.USERNAME}</td>
<td><input type="text" name="serendipity[user]" /></td>
</tr>
<tr>
<td>{$CONST.PASSWORD}</td>
<td><input type="password" name="serendipity[pass]" /></td>
</tr>
<tr>
<td colspan="2"><input id="autologin" type="checkbox" name="serendipity[auto]" /><label for="autologin"> {$CONST.AUTOMATIC_LOGIN}</label></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="{$CONST.LOGIN} &gt;" class="serendipityPrettyButton" /></td>
</tr>
{$admin_vars.out.table}
</table>
</form>
{$admin_vars.out.footer}
<a href="{$serendipityHTTPPath}">{$CONST.BACK_TO_BLOG}</a>
{*** LOGIN-AREA END ***}
{else}
{*** SIDEBAR-MENU START ***}
{if NOT $admin_vars.no_sidebar}
<td id="serendipitySideBar">
{*** MAIN LINKS START ***}
<ul class="serendipitySideBarMenu">
<li><a href="serendipity_admin.php">{$CONST.ADMIN_FRONTPAGE}</a></li>
{if 'personalConfiguration'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=personal">{$CONST.PERSONAL_SETTINGS}</a></li>
{/if}
</ul>
{*** MAIN LINKS END ***}
<br />
{*** ENTRY LINKS START ***}
<ul class="serendipitySideBarMenu">
{if 'adminEntries'|checkPermission OR 'adminEntriesPlugins'|checkPermission}
<li class="serendipitySideBarMenuHead">{$CONST.ADMIN_ENTRIES}</li>
{if 'adminEntries'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=new">{$CONST.NEW_ENTRY}</a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=entries&amp;serendipity[adminAction]=editSelect">{$CONST.EDIT_ENTRIES}</a></li>
{/if}
{if 'adminComments'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=comments">{$CONST.COMMENTS}</a></li>
{/if}
{if 'adminCategories'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=category&amp;serendipity[adminAction]=view">{$CONST.CATEGORIES}</a></li>
{/if}
{if 'adminEntries'|checkPermission OR 'adminEntriesPlugins'|checkPermission}
{if $admin_vars.no_create !== true} {serendipity_hookPlugin hook="backend_sidebar_entries" hookAll="true"}{/if}
{/if}
{/if}
</ul>
{*** ENTRY LINKS END ***}
{*** MEDIA LINKS START ***}
{if 'adminImages'|checkPermission}
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead">{$CONST.MEDIA}</li>
{if 'adminImagesAdd'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=addSelect">{$CONST.ADD_MEDIA}</a></li>
{/if}
{if 'adminImagesView'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=media">{$CONST.MEDIA_LIBRARY}</a></li>
{/if}
{if 'adminImagesDirectories'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=directorySelect">{$CONST.MANAGE_DIRECTORIES}</a></li>
{/if}
{if 'adminImagesSync'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=media&amp;serendipity[adminAction]=sync" onclick="return confirm('{$CONST.WARNING_THIS_BLAHBLAH}');">{$CONST.CREATE_THUMBS}</a></li>
{/if}
{if $admin_vars.no_create !== true} {serendipity_hookPlugin hook="backend_sidebar_entries_images" hookAll="true"}{/if}
</ul>
{/if}
{*** MEDIA LINKS END ***}
{*** APPEARANCE START ***}
{if 'adminTemplates'|checkPermission OR 'adminPlugins'|checkPermission}
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead">{$CONST.APPEARANCE}</li>
{if 'adminTemplates'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=templates">{$CONST.MANAGE_STYLES}</a></li>
{/if}
{if 'adminPlugins'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=plugins">{$CONST.CONFIGURE_PLUGINS}</a></li>
{/if}
{if $admin_vars.no_create !== true} {serendipity_hookPlugin hook="backend_sidebar_admin_appearance" hookAll="true"}{/if}
</ul>
{/if}
{*** APPEARANCE END ***}
{*** USER MANAGEMENT START ***}
{if 'adminUsersGroups'|checkPermission OR 'adminImport'|checkPermission OR 'siteConfiguration'|checkPermission OR 'blogConfiguration'|checkPermission OR 'adminUsers'|checkPermission}
<ul class="serendipitySideBarMenu">
<li class="serendipitySideBarMenuHead">{$CONST.ADMIN}</li>
{if 'siteConfiguration'|checkPermission OR 'blogConfiguration'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=configuration">{$CONST.CONFIGURATION}</a></li>
{/if}
{if 'adminUsers'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=users">{$CONST.MANAGE_USERS}</a></li>
{/if}
{if 'adminUsersGroups'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=groups">{$CONST.MANAGE_GROUPS}</a></li>
{/if}
{if 'adminImport'|checkPermission}
<li><a href="serendipity_admin.php?serendipity[adminModule]=import">{$CONST.IMPORT_ENTRIES}</a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=export">{$CONST.EXPORT_ENTRIES}</a></li>
{/if}
{if $admin_vars.no_create !== true} {serendipity_hookPlugin hook="backend_sidebar_admin" hookAll="true"}{/if}
</ul>
{/if}
{*** USER MANAGEMENT END ***}
{*** LOGOUT START ***}
<br />
<ul class="serendipitySideBarMenu">
<li><a href="{$baseURL}">{$CONST.BACK_TO_BLOG}</a></li>
<li><a href="serendipity_admin.php?serendipity[adminModule]=logout">{$CONST.LOGOUT}</a></li>
</ul>
{*** LOGOUT END ***}
</td>
{/if}
<td class="serendipityAdminContent">
{*** MAIN CONTENT OF THE ADMIN INTERFACE START ***}
{$admin_vars.main_content}
{*** MAIN CONTENT OF THE ADMIN INTERFACE END ***}
{/if}
{*** SIDEBAR-MENU END ***}
</td>
</tr>
</table>
<br />
<div id="serendipityAdminFooter">
{$admin_vars.version_info}
</div>
</body>
<!-- ADMIN-ENTRY TEMPLATE: index.tpl END -->
</html>