This commit is contained in:
Francisco 2020-07-11 15:18:33 +01:00
parent e65bb9c549
commit 3eb02b0509
127 changed files with 3810 additions and 1073 deletions

1
.gitignore vendored
View File

@ -7,6 +7,7 @@
/.buildpath /.buildpath
/.project /.project
/.settings /.settings
/.vscode
/fp-content/attachs /fp-content/attachs
/fp-content/images /fp-content/images
/fp-content_ /fp-content_

120
admin/admin.tpl Normal file
View File

@ -0,0 +1,120 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{$flatpress.title}{$pagetitle}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$flatpress.charset}" />
<meta name="viewport" content="width=device-width, user-scalable=no">
<link href="https://fonts.googleapis.com/css?family=Nunito&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{$smarty.const.BLOG_BASEURL}/fp-includes/bootstrap/css/bootstrap.min.css">
<script src="{$smarty.const.BLOG_BASEURL}/fp-includes/jquery/jquery.min.js"></script>
<link rel="stylesheet" href="{$smarty.const.BLOG_BASEURL}/admin/res/admin.css">
<link rel="stylesheet" href="{$smarty.const.BLOG_BASEURL}/fp-includes/themify-icons/themify-icons.css">
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/admin.js" ></script>
<link rel="stylesheet" href="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/themes/default.min.css" />
</head>
<body class="{"admin-$panel-$action"|tag:admin_body_class}">
<nav class="navbar navbar-dark flex-md-nowrap top-nav top-color">
<div class="container-fluid">
<div class="row master-row top-row mobile_menu_hide">
<div class="col-lg-6"><a href="#" onclick="mobile_open_button()"><span class="ti-menu mobile-menu" style="color: #fff;"></span></a><h3><span class="ti-arrow-circle-right"></span> {$panelstrings.head}</h3></div>
<div class="col-lg-6 top-right-bar">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link" href="login.php?do=logout">
<span class="d-lg-inline small"><span class="ti-power-off"></span><span class="top_menu_item"> {$logout}</span></span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" target="_blank" href="https://wiki.flatpress.org/">
<span class="d-lg-inline small"><span class="ti-help-alt"></span><span class="top_menu_item"> {$help_top}</span></span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="admin.php?p=config">
<span class="d-lg-inline small"><span class="ti-user"></span><span class="top_menu_item"> {$username}</span></span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{$smarty.const.BLOG_BASEURL}">
<span class="d-lg-inline small"><span class="ti-home"></span><span class="top_menu_item"> {$blog}</span></span>
</a>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="top-background top-color shadow mobile_menu_hide"></div>
<div class="container-fluid">
<div class="row master-row">
<nav class="bg-light sidebar left-sidebar" id="sidebar">
<a href="admin.php">
<div class="admin-logo">
<img src="{$smarty.const.BLOG_BASEURL}/admin/res/fp-logo.png">
</div>
</a>
<div class="admin-logo-border"></div>
<div class="sidebar-sticky">
<ul class="nav flex-column">
{foreach from=$menubar item=tab}
{if $tab eq $panel}
<li id="admin-{$tab}" class="nav-item">
<a id="admin-link-{$tab}" class="admin-tab-current nav-link active" href="{$smarty.const.BLOG_BASEURL}admin.php?p={$tab}">
{$lang.admin.panels[$tab]|default:$tab}
</a>
</li>
{if $submenu}
<ul class="nav flex-column submenu">
{foreach from=$submenu key=subtab item=item}
{if $item}
<li id="admin-{$panel}-{$subtab}" class="nav-item">
<a class="nav-link{if $action == $subtab} sub-active{/if}"
href="{$smarty.const.BLOG_BASEURL}admin.php?p={$panel}&amp;action={$subtab}">
<span class="ti-arrow-circle-right"></span>
{$lang.admin[$panel].submenu[$subtab]|default:$subtab}
</a>
</li>
{/if}
{/foreach}
</ul>
{/if}
{else}
<li id="admin-{$tab}" class="nav-item">
<a id="admin-link-{$tab}" class="nav-link" href="{$smarty.const.BLOG_BASEURL}admin.php?p={$tab}">
{$lang.admin.panels[$tab]|default:$tab}
</a>
</li>
{/if}
{/foreach}
<li id="close-button">
<div class="admin-logo-border"></div>
<a class="nav-link" onclick="mobile_close_button()">
<div class="btn btn-primary">
<span class="ti-close"></span>
{$close}
</div>
</a>
</li>
</ul>
<script>generate_menu_icons()</script>
</div>
</nav>
<main role="main" class="container-fluid mobile_menu_hide">
{page}
<div class="body">{controlpanel}</div>
{/page}
</div>
<div id="footer" class="mobile_menu_hide">
{action hook=wp_footer}
<p>
{$footer} <a href="http://www.flatpress.org/">FlatPress</a>.
</p>
</div> <!-- end of #footer -->
</main>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 B

View File

@ -8,6 +8,28 @@
include(ADMIN_DIR.'includes/panels.prototypes.php'); include(ADMIN_DIR.'includes/panels.prototypes.php');
require(SMARTY_DIR . 'SmartyValidate.class.php'); require(SMARTY_DIR . 'SmartyValidate.class.php');
// SCEditor Config
// In this file will check if SCEditor use BBCODE or HTML
// BBCode = 0 and HTML = 1
function get_sceditor_option() {
global $fp_config;
if (!isset($fp_config['general']['sceditor_display'])) {
$fp_config['general']['sceditor_display'] = 0; // BBCode as default
config_save();
}
return $fp_config['general']['sceditor_display'];
}
function get_sceditor_display_value() {
switch (get_sceditor_option()) {
case 0 : return 'bbcode';
case 1 : return 'xhtml';
case 2 : return 'disable';
default : return 'bbcode';
}
}
// End SCEditor Config
utils_nocache_headers(); utils_nocache_headers();
define('MOD_ADMIN_PANEL',1); define('MOD_ADMIN_PANEL',1);
@ -195,6 +217,19 @@
$smarty->assign_by_ref('panelstrings', $v); $smarty->assign_by_ref('panelstrings', $v);
$smarty->assign_by_ref('plang', $v); $smarty->assign_by_ref('plang', $v);
// We create a varible to write user name in tpls
if($user = user_loggedin()) {
$smarty->assign("username", $user['userid']);
} else {
$smarty->assign("username", "#NAME#");
}
// Custom lang message for admin panel
$smarty->assign("help_top", $lang['admin']['general']['help_top']);
$smarty->assign("logout", $lang['admin']['general']['logout_top']);
$smarty->assign("close", $lang['admin']['general']['close']);
$smarty->assign("blog", $lang['admin']['general']['blog']);
$smarty->assign("footer", $lang['admin']['general']['footer']);
if (isset($_GET['mod'])) { if (isset($_GET['mod'])) {
@ -207,8 +242,7 @@
} }
} else { } else {
$smarty->display('admin.tpl'); #$smarty->display('admin.tpl');
$smarty->display(ABS_PATH . ADMIN_DIR . 'admin.tpl');
} }
?> ?>

View File

@ -1,38 +1,4 @@
<ul id="admin-tabmenu">
{foreach from=$menubar item=tab}
{if $tab eq $panel}
<li id="admin-{$tab}">
<a class="admin-tab-current" href="{$smarty.const.BLOG_BASEURL}admin.php?p={$tab}">
{$lang.admin.panels[$tab]|default:$tab}
</a>
</li>
{else}
<li id="admin-{$tab}">
<a href="{$smarty.const.BLOG_BASEURL}admin.php?p={$tab}">
{$lang.admin.panels[$tab]|default:$tab}
</a>
</li>
{/if}
{/foreach}
</ul>
{if $submenu}
<ul id="admin-submenu">
{foreach from=$submenu key=subtab item=item}
{if $item}
<li id="admin-{$panel}-{$subtab}">
<a {if $action == $subtab}class="active" {/if}
href="{$smarty.const.BLOG_BASEURL}admin.php?p={$panel}&amp;action={$subtab}">
{$lang.admin[$panel].submenu[$subtab]|default:$subtab}
</a>
</li>
{/if}
{/foreach}
</ul>
{/if}
<div id="admin-content"> <div id="admin-content">
{include file=$admin_resource|default:"admin:$panel/$action"} {include file=$admin_resource|default:"admin:$panel/$action"}

View File

@ -34,6 +34,7 @@
function setup() { function setup() {
$this->smarty->assign('themes', theme_list()); $this->smarty->assign('themes', theme_list());
$this->smarty->assign('lang_list', lang_list()); $this->smarty->assign('lang_list', lang_list());
$this->smarty->assign("sceditor_display", get_sceditor_display_value());
$static_list = array(); $static_list = array();
@ -67,7 +68,7 @@
'style' => @$fp_config['general']['style'], 'style' => @$fp_config['general']['style'],
'blogid' => $fp_config['general']['blogid'], 'blogid' => $fp_config['general']['blogid'],
'charset'=> 'utf-8', 'charset'=> 'utf-8',
'sceditor_display' => $_POST['sceditor_format']
); );
$fp_config['locale'] = array( $fp_config['locale'] = array(

View File

@ -1,39 +1,43 @@
{include file='shared:errorlist.tpl'} {include file='shared:admin_errorlist.tpl'}
{html_form} {html_form}
<div class="row">
<div id="admin-config" class="option-set"> <div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div id="admin-config-general"> <div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
<h2> {$panelstrings.gensetts} </h2> </div>
<div class="card-body options_page">
<div class="row">
<div class="col-lg-6 mb-4">
<div id="admin-config-general">
<h2>{$panelstrings.gensetts}</h2>
<dl class="option-list"> <dl class="option-list">
<dt><label for="title"> {$panelstrings.blogtitle} </label></dt> <dt><label for="title"> {$panelstrings.blogtitle} </label></dt>
<dd><input type="text" name="title" id="title" class="textinput{$error.title|notempty:' field-error'}" <dd><input type="text" name="title" id="title" class="textinput{$error.title|notempty:' field-error'} form-control input_gray"
value="{$flatpress.TITLE|escape:"html"}" /> value="{$flatpress.TITLE|escape:"html"}" />
</dd> </dd>
<dt><label for="subtitle"> {$panelstrings.blogsubtitle} </label></dt> <dt><label for="subtitle"> {$panelstrings.blogsubtitle} </label></dt>
<dd><input type="text" name="subtitle" id="subtitle" class="bigtextinput" value="{$flatpress.subtitle|escape:"html"}" /></dd> <dd><input type="text" name="subtitle" id="subtitle" class="bigtextinput form-control input_gray" value="{$flatpress.subtitle|escape:"html"}" /></dd>
<dt><label for="blogfooter"> {$panelstrings.blogfooter} </label></dt> <dt><label for="blogfooter"> {$panelstrings.blogfooter} </label></dt>
<dd><input type="text" name="blogfooter" id="blogfooter" class="textinput" value="{$flatpress.footer|escape:"html"}" /></dd> <dd><input type="text" name="blogfooter" id="blogfooter" class="textinput form-control input_gray" value="{$flatpress.footer|escape:"html"}" /></dd>
<dt><label for="author"> {$panelstrings.blogauthor} </label></dt> <dt><label for="author"> {$panelstrings.blogauthor} </label></dt>
<dd><input type="text" name="author" id="author" class="textinput" value="{$flatpress.author}" /></dd> <dd><input type="text" name="author" id="author" class="textinput form-control input_gray" value="{$flatpress.author}" /></dd>
<dt><label for="www"> {$panelstrings.blogurl} </label></dt> <dt><label for="www"> {$panelstrings.blogurl} </label></dt>
<dd><input type="text" name="www" id="www" class="textinput{$error.www|notempty:" field-error"}" <dd><input type="text" name="www" id="www" class="form-control input_gray textinput{$error.www|notempty:" field-error"}"
value="{$flatpress.www|escape:"html"}" /></dd> value="{$flatpress.www|escape:"html"}" /></dd>
<dt><label for="email"> {$panelstrings.blogemail} </label></dt> <dt><label for="email"> {$panelstrings.blogemail} </label></dt>
<dd><input type="text" name="email" id="email" class="textinput{$error.email|notempty:" field-error"}" <dd><input type="text" name="email" id="email" class="form-control input_gray textinput{$error.email|notempty:" field-error"}"
value="{$flatpress.email}" /></dd> value="{$flatpress.email}" /></dd>
<dt> {$panelstrings.notifications} </dt> <dt> {$panelstrings.notifications} </dt>
@ -45,7 +49,7 @@
</dd> </dd>
<dt><label for="startpage"> {$panelstrings.startpage} </label></dt> <dt><label for="startpage"> {$panelstrings.startpage} </label></dt>
<dd><select name="startpage" id="startpage" class="textinput"> <dd><select name="startpage" id="startpage" class="textinput form-control input_gray">
<option value=":NULL:"> <option value=":NULL:">
{$panelstrings.stdstartpage} {$panelstrings.stdstartpage}
</option> </option>
@ -59,17 +63,20 @@
<dt><label for="maxentries"> {$panelstrings.blogmaxentries} </label></dt> <dt><label for="maxentries"> {$panelstrings.blogmaxentries} </label></dt>
<dd><input type="text" name="maxentries" id="maxentries" <dd><input type="text" name="maxentries" id="maxentries"
class="smalltextinput{$error.maxentries|notempty:" field-error"}" value="{$flatpress.maxentries}" /></dd> class="form-control input_gray smalltextinput{$error.maxentries|notempty:" field-error"}" value="{$flatpress.maxentries}" /></dd>
<dt><label for="maxentries">{$panelstrings.editor} </label></dt>
<dd><select name="sceditor_format" id="sceditor_format" class="textinput form-control input_gray">
<option value="0" {if $sceditor_display == 'bbcode' }selected{/if}>BBCode</option>
<option value="1" {if $sceditor_display == 'xhtml' }selected{/if}>HTML</option>
<option value="2" {if $sceditor_display == 'disable' }selected{/if}>Disable Editor</option>
</select></dd>
</dl> </dl>
</div> </div>
</div>
<div id="admin-config-intsetts"> <div class="col-lg-6 mb-4">
<div id="admin-config-intsetts">
<h2> {$panelstrings.intsetts} </h2> <h2> {$panelstrings.intsetts} </h2>
<dl class="option-list"> <dl class="option-list">
<dt> {$panelstrings.utctime} </dt> <dt> {$panelstrings.utctime} </dt>
{assign var=temp_time value="%b %d %Y %H:%M:%S"} {assign var=temp_time value="%b %d %Y %H:%M:%S"}
@ -77,28 +84,28 @@
<dt><label for="timeoffset"> {$panelstrings.timeoffset} </label></dt> <dt><label for="timeoffset"> {$panelstrings.timeoffset} </label></dt>
<dd><input type="text" name="timeoffset" id="timeoffset" <dd><input type="text" name="timeoffset" id="timeoffset"
class="smalltextinput{$error.timeoffset|notempty:" field-error"}" class="form-control input_gray smalltextinput{$error.timeoffset|notempty:" field-error"}"
value="{$fp_config.locale.timeoffset}" /> {$panelstrings.hours} value="{$fp_config.locale.timeoffset}" /> {$panelstrings.hours}
</dd> </dd>
<dt><label for="dateformat"> {$panelstrings.dateformat} </label></dt> <dt><label for="dateformat"> {$panelstrings.dateformat} </label></dt>
<dd> <p> <input type="text" name="dateformat" id="dateformat" <dd> <p> <input type="text" name="dateformat" id="dateformat"
class="textinput{$error.dateformat|notempty:" field-error"}" class="form-control input_gray textinput{$error.dateformat|notempty:" field-error"}"
value="{$fp_config.locale.dateformat}" /> </p> value="{$fp_config.locale.dateformat}" /> </p>
<p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.dateformat} </p> <p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.dateformat} </p>
</dd> </dd>
<dt><label for="dateformatshort"> {$panelstrings.dateformatshort} </label></dt> <dt><label for="dateformatshort"> {$panelstrings.dateformatshort} </label></dt>
<dd> <p> <input type="text" name="dateformatshort" id="dateformatshort" <dd> <p> <input type="text" name="dateformatshort" id="dateformatshort"
class="textinput{$error.dateformatshort|notempty:" field-error"}" class="form-control input_gray textinput{$error.dateformatshort|notempty:" field-error"}"
value="{$fp_config.locale.dateformatshort}" /> </p> value="{$fp_config.locale.dateformatshort}" /> </p>
<p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.dateformatshort} </p> <p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.dateformatshort} </p>
</dd> </dd>
<dt><label for="timeformat"> {$panelstrings.timeformat} </label></dt> <dt><label for="timeformat"> {$panelstrings.timeformat} </label></dt>
<dd> <p> <input type="text" name="timeformat" id="timeformat" <dd> <p> <input type="text" name="timeformat" id="timeformat"
class="textinput{$error.timeformat|notempty:" field-error"}" class="form-control input_gray textinput{$error.timeformat|notempty:" field-error"}"
value="{$fp_config.locale.timeformat}" /> </p> value="{$fp_config.locale.timeformat}" /> </p>
<p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.timeformat} </p> <p> {$panelstrings.output}: {$smarty.now|date_format:$fp_config.locale.timeformat} </p>
</dd> </dd>
@ -106,7 +113,7 @@
<dt><label for="lang"> {$panelstrings.langchoice} </label></dt> <dt><label for="lang"> {$panelstrings.langchoice} </label></dt>
<dd> <dd>
<select name="lang" id="lang" class="textinput"> <select name="lang" id="lang" class="form-control input_gray textinput">
{foreach from=$lang_list item=langsetts} {foreach from=$lang_list item=langsetts}
<option value="{$langsetts.locale}" <option value="{$langsetts.locale}"
{if $langsetts.locale == $fp_config.locale.lang}selected="selected"{/if}> {if $langsetts.locale == $fp_config.locale.lang}selected="selected"{/if}>
@ -118,21 +125,22 @@
<dt> <label for="charset"> {$panelstrings.charset} </label></dt> <dt> <label for="charset"> {$panelstrings.charset} </label></dt>
<dd> <p><input type="text" name="charset" id="charset" <dd> <p><input type="text" name="charset" id="charset"
class="smalltextinput{$error.charset|notempty:" field-error"}" class="form-control input_gray smalltextinput{$error.charset|notempty:" field-error"}"
value="{$fp_config.locale.charset}" /></p> value="{$fp_config.locale.charset}" /></p>
<p>{$panelstrings.charsettip}</p> <p>{$panelstrings.charsettip}</p>
</dd> </dd>
</dl> </dl>
</div>
</div>
</div>
<div class="buttonbar">
{html_submit name="save" id="save" class="btn btn-primary" value=$panelstrings.submit}
</div>
</div>
</div>
</div>
</div> </div>
</div>
<div class="buttonbar">
{html_submit name="save" id="save" value=$panelstrings.submit}
</div>
{/html_form} {/html_form}

View File

@ -20,7 +20,6 @@
function main() { function main() {
if (isset($_GET['do']) && $_GET['do'] == 'clear') { if (isset($_GET['do']) && $_GET['do'] == 'clear') {
$ret1 = fs_delete(CONTENT_DIR . 'categories_encoded.dat') && $ret1 = fs_delete(CONTENT_DIR . 'categories_encoded.dat') &&
$ret2 = fs_delete(CONTENT_DIR . 'categories.txt'); $ret2 = fs_delete(CONTENT_DIR . 'categories.txt');

View File

@ -1,24 +1,32 @@
<h2>{$panelstrings.head}</h2> {include file=shared:admin_errorlist.tpl}
{include file=shared:errorlist.tpl}
{$panelstrings.descr}
<p><a href="?p=entry&amp;action=cats&amp;do=clear">{$panelstrings.clear}</a></p>
{html_form}
<p>
<textarea name="content" id="content" rows="20" cols="74">{$catdefs|escape}</textarea><br />
</p>
<div class="buttonbar">
{html_submit name="save" id="save" value=$panelstrings.submit}
<div class="row">
<div class="col-xl-8 col-lg-7">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
{html_form}
<p>
<textarea name="content" id="content" class="form-control cat-textarea" rows="20" cols="74">{$catdefs|escape}</textarea>
</p>
<div class="buttonbar text-center">
{html_submit name="save" id="save" class="btn btn-primary" value=$panelstrings.submit}
<a class="btn btn-secondary" href="?p=entry&amp;action=cats&amp;do=clear">{$panelstrings.clear}</a>
</div>
{/html_form}
</div>
</div>
</div>
<div class="col-xl-4 col-lg-5">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.cats_info}</h6>
</div>
<div class="card-body">
{$panelstrings.descr}
</div>
</div>
</div>
</div> </div>
{/html_form}

View File

@ -1,36 +1,35 @@
<h2>{$plang.head} <a href="admin.php?p=entry&amp;action=write&amp;entry={$entryid}">{$entrysubject}</a></h2> {html_form}
<p>{$plang.descr}</p>
{html_form}
{include file='shared:errorlist.tpl'}
{include file='shared:admin_errorlist.tpl'}
<div class="row">
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4 edit_comments">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$plang.head} {$entrysubject}</h6>
</div>
<div class="card-body">
<p><input type="hidden" name="entry" value="{$entryid}" /><input type="hidden" name="comment" value="{$id}" /> <p><input type="hidden" name="entry" value="{$entryid}" /><input type="hidden" name="comment" value="{$id}" />
<div class="option-set"> <div class="option-set">
<dl> <dl>
<dt><label class="textlabel" for="name">{$plang.author}</label></dt> <dt><label class="textlabel" for="name">{$plang.author}</label></dt>
<dd> <dd>
<input type="text" class="bigtextinput {$error.name|notempty:'field-error'}" name="name" id="name" value="{$values.name}" /> <input type="text" class="bigtextinput {$error.name|notempty:'field-error'} form-control input_gray" name="name" id="name" value="{$values.name}" />
</dd> </dd>
<dt><label class="textlabel" for="email">{$plang.email}</label></dt> <dt><label class="textlabel" for="email">{$plang.email}</label></dt>
<dd> <dd>
<input type="text" class="bigtextinput {$error.email|notempty:'field-error'}" name="email" id="email" value="{$values.email}" /> <input type="text" class="bigtextinput {$error.email|notempty:'field-error'} form-control input_gray" name="email" id="email" value="{$values.email}" />
</dd> </dd>
<dt><label class="textlabel" for="www">{$plang.www}</label></dt> <dt><label class="textlabel" for="www">{$plang.www}</label></dt>
<dd> <dd>
<input type="text" class="bigtextinput {$error.www|notempty:'field-error'}" name="url" id="url" value="{$values.url}" /> <input type="text" class="bigtextinput {$error.www|notempty:'field-error'} form-control input_gray" name="url" id="url" value="{$values.url}" />
</dd> </dd>
<dt><label class="textlabel" for="ip">{$plang.ip}</label></dt> <dt><label class="textlabel" for="ip">{$plang.ip}</label></dt>
<dd> <dd>
<input type="text" id="ip" name="ip" class="bigtextinput" value="{$values.ip_address}" disabled="disabled" /> <input type="text" id="ip" name="ip" class="bigtextinput form-control" value="{$values.ip_address}" disabled="disabled" />
</dd> </dd>
<dt><label class="textlabel" for"loggedin">{$plang.loggedin}</label></dt> <dt><label class="textlabel" for"loggedin">{$plang.loggedin}</label></dt>
@ -42,13 +41,16 @@
<div class="option-set"> <div class="option-set">
<textarea name="content" {$error.content|notempty:'class="field-error"'} <textarea name="content" {$error.content|notempty:'class="field-error"'}
id="content" rows="10" cols="74">{$values.content}</textarea> id="content" class="form-control input_gray">{$values.content}</textarea>
</div> </div>
<div class="buttonbar"> <div class="buttonbar">
<input type="submit" name="save" id="submit" value="{$plang.submit}" /> <input type="submit" name="save" id="submit" value="{$plang.submit}" class="btn btn-primary" />
</div>
</div>
</div>
</div>
</div> </div>
{/html_form} {/html_form}

View File

@ -1,18 +1,8 @@
{include file="shared:admin_errorlist.tpl"}
{entry_block} {entry_block}
{entry} {entry}
<h2>{$panelstrings.head} <a href="admin.php?p=entry&amp;action=write&amp;entry={$id}">{$subject}</a></h2>
{include file=shared:errorlist.tpl}
<p>{$panelstrings.descr}</p>
{comment_block} {comment_block}
{html_form} {html_form}
<script type="text/javascript"> <script type="text/javascript">
{literal} {literal}
@ -20,38 +10,51 @@ function admin_entry_comment_delete() { return confirm({/literal}'{$plang.act_de
{/literal} {/literal}
</script> </script>
<table class="entrylist"> <div class="row">
<thead><tr> <div class="col-xl-8 col-lg-7">
<th>{$panelstrings.date}</th> <div class="card shadow mb-4">
<th>{$panelstrings.content}</th> <div class="card-header">
<th>{$panelstrings.author}</th> <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head} {$subject}</h6>
<th>{$panelstrings.email}</th> </div>
<th>{$panelstrings.ip}</th> <div class="card-body">
<th>{$panelstrings.actions}</th> <div class="table-responsive">
</tr></thead> <table class="entrylist table">
<tbody> <thead><tr>
{comment} <th>{$panelstrings.date}</th>
<tr> <th>{$panelstrings.content}</th>
{*<td><input type="checkbox" /></td>*} <th>{$panelstrings.author}</th>
<td>{$date|date_format:"%D, %T"}</td> <th>{$panelstrings.email}</th>
<td class="main_cell"> <th>{$panelstrings.ip}</th>
{$content|strip_tags|truncate:70} <th>{$panelstrings.actions}</th>
</td> </tr></thead>
<td>{if $url}<a href="{$url}">{$name}</a>{else}{$name}{/if}</td> <tbody>
<td><a href="mailto:{$email}">{$email}</a></td> {comment}
<td>{$ip_address}</td> <tr>
<td> {*<td><input type="checkbox" /></td>*}
<a class="link-general" <td>{$date|date_format:"%D, %T"}</td>
href="{"`$panel_url`&entry=`$entryid`"|action_link:commedit|cmd_link:comment:$id}"> <td class="main_cell">
{$plang.act_edit} {$content|strip_tags|truncate:70}
</a> </td>
<a class="link-delete" onclick="return admin_entry_comment_delete();" href="{"`$panel_url`&entry=`$entryid`"|action_link:commentlist|cmd_link:delete:$id}"> <td>{if $url}<a href="{$url}">{$name}</a>{else}{$name}{/if}</td>
{$plang.act_del} <td><a href="mailto:{$email}">{$email}</a></td>
</a> <td>{$ip_address}</td>
</td> <td>
</tr> <a class="link-general"
{/comment} href="{"`$panel_url`&entry=`$entryid`"|action_link:commedit|cmd_link:comment:$id}">
</tbody></table> {$plang.act_edit}
</a>
<a class="link-delete" onclick="return admin_entry_comment_delete();" href="{"`$panel_url`&entry=`$entryid`"|action_link:commentlist|cmd_link:delete:$id}">
{$plang.act_del}
</a>
</td>
</tr>
{/comment}
</tbody></table>
</div>
</div>
</div>
</div>
</div>
{/html_form} {/html_form}
{/comment_block} {/comment_block}

View File

@ -1,19 +1,25 @@
<h2>{$panelstrings.head}</h2> <div class="row">
<div class="col-xl-12 col-lg-12">
<p>{$panelstrings.descr}</p> <div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
{entry_block} {entry_block}
{html_form} {html_form}
<fieldset><legend>{$panelstrings.preview}</legend>
{include file=preview.tpl} {include file=preview.tpl}
</fieldset> </fieldset>
<p>{$panelstrings.confirm}</p> </br>
<p class="delete_confirm">{$panelstrings.confirm}</p>
<input type="hidden" name="entry" value="{$id}" /> <input type="hidden" name="entry" value="{$id}" />
<div class="buttonbar"> <div class="buttonbar">
{html_submit name="delete" id="delete" value=$panelstrings.ok} {html_submit name="delete" id="delete" class="btn btn-primary" value=$panelstrings.ok}
{html_submit name="cancel" id="cancel" value=$panelstrings.cancel} {html_submit name="cancel" id="cancel" class="btn btn-secondary" value=$panelstrings.cancel}
</div> </div>
{/html_form} {/html_form}
{/entry_block} {/entry_block}
</div>
</div>
</div>
</div>

View File

@ -1,97 +1,103 @@
{include file=shared:admin_errorlist.tpl}
<h2>{$panelstrings.head}</h2> <div class="row">
<div class="col-xl-8 col-lg-7">
<div class="card shadow mb-4">
<div class="card-header">
{draft_block} <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
<div id="admin-drafts"> </div>
<p>Your drafts:</p> <div class="card-body">
<ul> <div class="table-responsive table-striped">
<table class="entrylist table">
{draft} <thead><tr>{*<th>{$panelstrings.sel}</th>*}
<li> <th>{$panelstrings.date}</th>
<a href="admin.php?p=entry&amp;entry={$id}&amp;action=write">{$subject|truncate:70}</a> <th class="main-cell">{$panelstrings.title}</th>
<!-- <th>{$panelstrings.author}</th> -->
</li> <th>{$panelstrings.comms}</th>
{/draft} <th>{$panelstrings.action}</th></tr></thead>
<tbody>
</ul> {entry}
</div> <tr>
<td>{$id|entry_idtotime|date_format:"`$fp_config.locale.dateformatshort`, `$fp_config.locale.timeformat`"}</td>
{/draft_block} <td class="main-cell">
{if in_array('draft',$categories)}
(<em class="entry-flag">{$lang.entry.flags.short.draft}</em>)
{/if}
{include file=shared:errorlist.tpl} <a class="link-general"
href="{$panel_url|action_link:write}&amp;entry={$id}">
<p>{$panelstrings.descr}</p> {$subject|truncate:70}
</a>
<form method="get" action="{$smarty.request.PHP_SELF}?p=entry"> </td>
<p> <input type="hidden" name="p" value="entry" /> </p> <!-- <td>{$author}</td> -->
<fieldset><legend>{$panelstrings.filter}</legend> <td><a class="link-general"
<select name="category" class="alignleft"> href="{$panel_url|action_link:commentlist}&amp;entry={$id}">
{* Compatibility with pre-0.702 *}
{$commentcount|default:$comments}
<span class="ti-comments"></span></a></td>
<td>
<a class="link-general"
href="{$id|link:post_link}">
<span class="ti-desktop"></span>
{$panelstrings.act_view}
</a>
<a class="link-general"
href="{$panel_url|action_link:write}&amp;entry={$id}">
<span class="ti-pencil-alt"></span>
{$panelstrings.act_edit}
</a>
<a class="link-delete"
href="{$panel_url|action_link:delete}&amp;entry={$id}">
<span class="ti-trash"></span>
{$panelstrings.act_del}
</a>
</td>
</tr>
{/entry}
</tbody></table>
</div>
{entry_block}
<div class="navigation">
<div class="prevpage">{prevpage admin=yes}</div>
<div class="nextpage">{nextpage admin=yes}</div>
</div>
</br>
{/entry_block}
<div class="entry_filter">
<form method="get" action="{$smarty.request.PHP_SELF}?p=entry">
<p> <input type="hidden" name="p" value="entry" /> </p>
<select name="category" class="alignleft form-control select_filter">
<option label="Unfiltered" value="all">{$panelstrings.nofilter}</option> <option label="Unfiltered" value="all">{$panelstrings.nofilter}</option>
{*html_options options=$lang.entry.flags.short selected=$smarty.request.cat*} {*html_options options=$lang.entry.flags.short selected=$smarty.request.cat*}
{html_options options=$categories_all selected=$smarty.request.category} {html_options options=$categories_all selected=$smarty.request.category}
</select> </select>
{html_submit name='filter' id='filter' class="alignright" value=$panelstrings.filterbtn} {html_submit name='filter' id='filter' class="alignright btn btn-primary select_filter apply_filter_button" value=$panelstrings.filterbtn}
</fieldset> </fieldset>
</form>
</form> </div>
<a href="admin.php?p=entry&action=write" class="btn btn-primary new_entry_button"><span class="ti-user text-white-100 small"></span> {$panelstrings.add_new_entry}</a>
{entry_block} </div>
</div>
<table class="entrylist"> </div>
<thead><tr>{*<th>{$panelstrings.sel}</th>*} {draft_block}
<th>{$panelstrings.date}</th> <div class="col-xl-4 col-lg-5">
<th class="main-cell">{$panelstrings.title}</th> <div class="card shadow mb-4">
<!-- <th>{$panelstrings.author}</th> --> <div class="card-header">
<th>{$panelstrings.comms}</th> <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.your_drafts}</h6>
<th>{$panelstrings.action}</th></tr></thead> </div>
<tbody> <div class="card-body">
{entry} <div id="admin-drafts">
<tr> <ul>
<td>{$id|entry_idtotime|date_format:"`$fp_config.locale.dateformatshort`, `$fp_config.locale.timeformat`"}</td> {draft}
<td class="main-cell"> <li>
{if in_array('draft',$categories)} <a href="admin.php?p=entry&amp;entry={$id}&amp;action=write">{$subject|truncate:70}</a>
(<em class="entry-flag">{$lang.entry.flags.short.draft}</em>) </li>
{/if} {/draft}
<a class="link-general" </ul>
href="{$panel_url|action_link:write}&amp;entry={$id}"> </div>
{$subject|truncate:70} </div>
</a> </div>
</td> </div>
<!-- <td>{$author}</td> --> {/draft_block}
<td><a class="link-general" </div>
href="{$panel_url|action_link:commentlist}&amp;entry={$id}">
{* Compatibility with pre-0.702 *}
{$commentcount|default:$comments}</a></td>
<td>
<a class="link-general"
href="{$id|link:post_link}">
{$panelstrings.act_view}
</a>
<a class="link-general"
href="{$panel_url|action_link:write}&amp;entry={$id}">
{$panelstrings.act_edit}
</a>
<a class="link-delete"
href="{$panel_url|action_link:delete}&amp;entry={$id}">
{$panelstrings.act_del}
</a>
</td>
</tr>
{/entry}
</tbody></table>
<div class="navigation">
{prevpage admin=yes}
{nextpage admin=yes}
</div>
{/entry_block}

View File

@ -1,6 +1,6 @@
<h2>{"Statistics"}</h2> <h2>{"Statistics"}</h2>
{include file='shared:errorlist.tpl'} {include file='shared:admin_errorlist'}
<h3>{"Entries"}</h3> <h3>{"Entries"}</h3>
{"<p>You have <strong>%s</strong> {"<p>You have <strong>%s</strong>

View File

@ -13,9 +13,6 @@
* *
*/ */
class admin_entry_write extends AdminPanelActionValidated { class admin_entry_write extends AdminPanelActionValidated {
var $validators = array( var $validators = array(
@ -82,12 +79,13 @@
$this->id = @$_REQUEST['entry']; $this->id = @$_REQUEST['entry'];
$this->smarty->assign('id', $this->id); $this->smarty->assign('id', $this->id);
// SCEditor Smarty
$this->smarty->assign("sceditor_display", get_sceditor_display_value());
global $fp_config;
$this->smarty->assign("lang_locale", $fp_config['locale']['lang']);
} }
function main() { function main() {
global $lang; global $lang;
$id = $this->id; $id = $this->id;

View File

@ -1,42 +1,122 @@
<h2>{$panelstrings.head}</h2> {include file='shared:admin_errorlist.tpl'}
{include file='shared:errorlist.tpl'}
{entry_block} {entry_block}
<div id="admin-post-preview">
{if $preview} {if $preview}
<fieldset id="post-preview"><legend>{$panelstrings.preview}</legend> <div class="row">
{include file=preview.tpl} <div class="col-xl-12 col-lg-12">
</fieldset> <div class="card shadow mb-4">
{/if} <div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.preview}</h6>
</div> </div>
<div class="card-body">
{include file=preview.tpl}
</div>
</div>
</div>
</div>
{/if}
{html_form} {html_form}
{entry content=$post alwaysshow=true} {entry content=$post alwaysshow=true}
<div class="row">
<div class="col-xl-8 col-lg-7">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
<div id="admin-editor"> <div id="admin-editor">
<p><label for="subject">{$panelstrings.subject}</label><br /> <input type="text" {$error.subject|notempty:'class="field-error form-control input_gray input-max-width"'}
<input type="text" {$error.subject|notempty:'class="field-error"'}
name="subject" id="subject" name="subject" id="subject"
value="{$subject|default:$smarty.request.subject|wp_specialchars:1}" /><br /> value="{$subject|default:$smarty.request.subject|wp_specialchars:1}" placeholder="{$panelstrings.subject}"/ class="form-control input_gray input-max-width"><br />
<input type="hidden" name="timestamp" value="{$date}" /> <input type="hidden" name="timestamp" value="{$date}" />
<input type="hidden" name="entry" value="{$id}" /> <input type="hidden" name="entry" value="{$id}" />
</p>
<p> <p>
<label for="content">{$panelstrings.content}</label> <textarea name="content" class="{$error.content|notempty:'field-error'} form-control"
</p> id="content_textarea" placeholder="{$panelstrings.content}">{$content|default:$smarty.request.content|htmlspecialchars}</textarea><br />
{toolbar} {if $sceditor_display!='disable'}
<p> <script src="{$smarty.const.BLOG_BASEURL}/fp-includes/bootstrap/js/bootstrap.min.js"></script>
<textarea name="content" {$error.content|notempty:'class="field-error"'}
id="content" rows="20" cols="74">{$content|default:$smarty.request.content|htmlspecialchars}</textarea><br /> <!-- Here is the SCEditor -->
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/sceditor.min.js"></script>
{if $sce_display=='bbcode'}
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/formats/bbcode.js"></script>
{else}
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/formats/xhtml.js"></script>
{/if}
<script src="{$smarty.const.BLOG_BASEURL}/fp-interface/lang/{$lang_locale}/sceditor.js"></script>
<script>
// Replace the textarea #example with SCEditor
var sce_display = "{$sceditor_display}";
var lang_editor = "{$lang_locale}";
var eRoot = "admin/res/sceditor/";
var FileManagerDir = "{$smarty.const.BLOG_BASEURL}/fp-plugins/sceditorfilemanager";
{literal}
var textarea = document.getElementById('content_textarea');
sceditor.create(textarea, {
emoticonsRoot: eRoot,
format: sce_display,
height: "400px",
locale: lang_editor
//style: '../../res/sceditor/themes/content/default.min.css'
});
set_media_button(FileManagerDir);
</script>
{/literal}
{/if}
{*here will go a plugin hook*} {*here will go a plugin hook*}
{action hook=simple_edit_form} {action hook=simple_edit_form}
</p> </p>
</div> </div>
</div>
</div>
</div>
<div class="col-xl-4 col-lg-5">
<div class="card shadow mb-4 save_options">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.saveopts}</h6>
</div>
<div class="card-body">
<div class="buttonbar">
{html_submit name="save" id="save" class="btn btn-primary" value=$panelstrings.submit accesskey=s}
{html_submit name="savecontinue" id="savecontinue" class="btn btn-primary" value=Save accesskey=c}
{html_submit name="preview" id="preview" class="btn btn-primary" value=$panelstrings.preview accesskey=p}
</div>
<p>
{foreach from=$saved_flags item=flag}
<label><input name="flags[{$flag}]" {if $categories and (bool)array_intersect(array($flag),$categories) }checked="checked"{/if} type="checkbox" /> {$lang.entry.flags.long[$flag]} </label><br />
{/foreach}
</p>
</div>
</div>
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.categories}</h6>
</div>
<div class="card-body categories_panel">
{list_categories type=form selected=$categories}
</div>
</div>
<div class="card shadow mb-4 other_options">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.otheropts}</h6>
</div>
<p>
<ul>
{if !$draft}
<li><a href="admin.php?p=entry&amp;entry={$smarty.get.entry}&amp;action=commentlist">
{$panelstrings.commmsg}</a></li>
{/if}
<li><a href="admin.php?p=entry&amp;entry={$smarty.get.entry}&amp;action=delete">
{$panelstrings.delmsg}</a></li>
</ul>
</p>
</div>
</div>
</div>
<div id="admin-options"> <div id="admin-options">
@ -50,27 +130,6 @@
*} *}
{* end of inline form *} {* end of inline form *}
<fieldset id="admin-entry-categories"><legend>{$panelstrings.categories}</legend>
{list_categories type=form selected=$categories}
</fieldset>
<fieldset id="admin-entry-saveopts"><legend>{$panelstrings.saveopts}</legend>
<p>
{foreach from=$saved_flags item=flag}
<label><input name="flags[{$flag}]" {if $categories and (bool)array_intersect(array($flag),$categories) }checked="checked"{/if} type="checkbox" /> {$lang.entry.flags.long[$flag]} </label><br />
{/foreach}
</p>
</fieldset>
</div>
<div class="buttonbar">
{html_submit name="save" id="save" value=$panelstrings.submit accesskey=s}
{html_submit name="savecontinue" id="savecontinue" value=$panelstrings.savecontinue accesskey=c}
{html_submit name="preview" id="preview" value=$panelstrings.preview accesskey=p}
</div> </div>
@ -78,22 +137,25 @@
{/html_form} {/html_form}
{/entry_block} {/entry_block}
{if $smarty.get.entry } <!-- Bootstrap Modal (Open the editor) -->
<div class="modal fade" id="flatpress-files-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div id="admin-otheroptions"> <div class="modal-dialog" role="document">
<div class="modal-content">
<h2>{$panelstrings.otheropts}</h2> <div class="modal-header">
<ul> <h5 class="modal-title" id="exampleModalLabel">File Manager</h5>
{if !$draft} <button type="button" class="close" data-dismiss="modal" aria-label="Close">
<li><a href="admin.php?p=entry&amp;entry={$smarty.get.entry}&amp;action=commentlist"> <span aria-hidden="true">&times;</span>
{$panelstrings.commmsg}</a></li> </button>
{/if} </div>
<li><a href="admin.php?p=entry&amp;entry={$smarty.get.entry}&amp;action=delete"> <div class="modal-body">
{$panelstrings.delmsg}</a></li> NOT WORKING YEY :(
</ul> </div>
</div>
</div>
</div> </div>
{if $smarty.get.entry }
{/if} {/if}

View File

@ -1,46 +1,53 @@
<h2>{$panelstrings.head}</h2>
<p>{$panelstrings.descr}</p>
<dl>
<dt class="admin-mainmenu-item">
<img src="{$smarty.const.ADMIN_DIR}imgs/newentry.png" class="alignleft" alt="{$panelstrings.op1}"
title="{$panelstrings.op1}" />
<a href="admin.php?p=entry&amp;action=write">{$panelstrings.op1}</a>
</dt>
<dd class="admin-icon-descr">{$panelstrings.op1d}</dd>
<dt class="admin-mainmenu-item"> <div class="row">
<img src="{$smarty.const.ADMIN_DIR}imgs/entries.png" class="alignleft" alt="{$panelstrings.op2}" <!-- Pie Chart -->
title="{$panelstrings.op2}" /> <div class="col-lg-6 mb-4">
<a href="admin.php?p=entry">{$panelstrings.op2}</a> <div class="card shadow mb-4 quick_menu">
</dt> <!-- Card Header - Dropdown -->
<dd class="admin-icon-descr">{$panelstrings.op2d}</dd> <div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.quick_menu}</h6>
</div>
<!-- Card Body -->
<div class="card-body">
<p>Wecome back <b>{$username}</b>, {$panelstrings.can_do}</p>
<ul>
<li><a href="admin.php?p=entry&amp;action=write"><span class="ti-pencil-alt"></span> {$panelstrings.op1d}</a></li>
<li><a href="admin.php?p=entry"><span class="ti-layers-alt"></span> {$panelstrings.op2d}</a></li>
<li><a href="admin.php?p=widgets"><span class="ti-move"></span> {$panelstrings.op3d}</a></li>
<li><a href="admin.php?p=plugin"><span class="ti-hummer"></span> {$panelstrings.op4d}</a></li>
<li><a href="admin.php?p=config"><span class="ti-settings"></span> {$panelstrings.op5d}</a></li>
<li><a href="admin.php?p=maintain"><span class="ti-check-box"></span> {$panelstrings.op6d}</a></li>
</ul>
</div>
</div>
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.help}</h6>
</div>
<div class="card-body maintain">
<p>{$panelstrings.useful_links}</p>
<ul>
<li><a href="https://www.flatpress.org"><span class="ti-home"></span> {$panelstrings.fp_home}</a></li>
<li><a href="https://www.flatpress.org/blog.php?x=entry"><span class="ti-layers-alt"></span> {$panelstrings.fp_blog}</a></li>
<li><a href="http://forum.flatpress.org/"><span class="ti-comments"></span> {$panelstrings.fp_forums}</a></li>
<li><a href="http://wiki.flatpress.org/"><span class="ti-help-alt"></span> {$panelstrings.fp_wiki}</a></li>
</ul>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.last_comments}</h6>
</div>
<div class="card-body lc_table">
{$last_comments_table}
</div>
</div>
</div>
</div>
<div class="row">
<dt class="admin-mainmenu-item">
<img src="{$smarty.const.ADMIN_DIR}imgs/widgets.png" class="alignleft" alt="{$panelstrings.op3}"
title="{$panelstrings.op3}" />
<a href="admin.php?p=widgets">{$panelstrings.op3}</a>
</dt>
<dd class="admin-icon-descr">{$panelstrings.op3d}</dd>
<dt class="admin-mainmenu-item">
<img src="{$smarty.const.ADMIN_DIR}imgs/plugins.png" class="alignleft" alt="{$panelstrings.op4}"
title="{$panelstrings.op4}" />
<a href="admin.php?p=plugin">{$panelstrings.op4}</a>
</dt>
<dd class="admin-icon-descr">{$panelstrings.op4d}</dd>
<dt class="admin-mainmenu-item"> </div>
<img src="{$smarty.const.ADMIN_DIR}imgs/config.png" class="alignleft" alt="{$panelstrings.op5}"
title="{$panelstrings.op5}" />
<a href="admin.php?p=config">{$panelstrings.op5}</a>
</dt>
<dd class="admin-icon-descr">{$panelstrings.op5d}</dd>
<dt class="admin-mainmenu-item">
<img src="{$smarty.const.ADMIN_DIR}imgs/maintain.png" class="alignleft" alt="{$panelstrings.op6}"
title="{$panelstrings.op6}" />
<a href="admin.php?p=maintain">{$panelstrings.op6}</a>
</dt>
<dd class="admin-icon-descr">{$panelstrings.op6d}</dd>
</dl>

View File

@ -1,25 +1,53 @@
<h2>{$panelstrings.head}</h2> <div class="maintain">
{include file=shared:errorlist.tpl} <div class="row">
{if $files} <div class="col-lg-6 mb-4">
<p>{$panelstrings.chmod_info}</p> <div class="card shadow mb-4">
<p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p> <div class="card-header">
<ul> <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
{foreach from=$files item=file} </div>
<div class="card-body">
{include file=shared:admin_errorlist.tpl}
{if $files}
<p>{$panelstrings.chmod_info}</p>
<p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p>
<ul>
{foreach from=$files item=file}
<li>{$file}</li> <li>{$file}</li>
{/foreach} {/foreach}
</ul> </ul>
<p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p> <p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p>
{elseif $phpinfo} {elseif $phpinfo}
<p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p> <p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p>
{$phpinfo} {$phpinfo}
<p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p> <p><a href="admin.php?p=maintain">{$panelstrings.opt0}</a></p>
{else} {else}
<p>{$panelstrings.descr}</p> <p>{$panelstrings.descr}</p>
<ul> <ul>
<li><a href="{$action_url|cmd_link:do:rebuild}">{$panelstrings.opt1}</a></li> <li><a href="{$action_url|cmd_link:do:rebuild}"><span class="ti-reload"></span> {$panelstrings.opt1}</a></li>
<li><a href="{$action_url|cmd_link:do:purgetplcache}">{$panelstrings.opt2}</a></li> <li><a href="{$action_url|cmd_link:do:purgetplcache}"><span class="ti-paint-bucket"></span> {$panelstrings.opt2}</a></li>
<li><a href="{$action_url|cmd_link:do:restorechmods}">{$panelstrings.opt3}</a></li> <li><a href="{$action_url|cmd_link:do:restorechmods}"><span class="ti-lock"></span> {$panelstrings.opt3}</a></li>
<li><a href="{$action_url|cmd_link:do:phpinfo}">{$panelstrings.opt4}</a></li> <li><a href="{$action_url|cmd_link:do:phpinfo}"><span class="ti-info-alt"></span> {$panelstrings.opt4}</a></li>
<li><a href="{$panel_url|action_link:updates}">{$panelstrings.opt5}</a></li> <li><a href="{$panel_url|action_link:updates}"><span class="ti-package"></span> {$panelstrings.opt5}</a></li>
</ul> </ul>
{/if} {/if}
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.help}</h6>
</div>
<div class="card-body">
<p>{$panelstrings.useful_links}</p>
<ul>
<li><a href="https://www.flatpress.org/" target="_blank"><span class="ti-home"></span> {$panelstrings.fp_home}</a></li>
<li><a href="https://www.flatpress.org/blog.php?x=entry" target="_blank"><span class="ti-layers-alt"></span> {$panelstrings.fp_blog}</a></li>
<li><a href="http://forum.flatpress.org/" target="_blank"><span class="ti-comments"></span> {$panelstrings.fp_forums}</a></li>
<li><a href="http://wiki.flatpress.org/" target="_blank"><span class="ti-help-alt"></span> {$panelstrings.fp_wiki}</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>

View File

@ -1,7 +1,29 @@
<h2>{$panelstrings.head}</h2> {include file=shared:admin_errorlist.tpl}
{include file=shared:errorlist.tpl}
{$panelstrings.list|sprintf:$smarty.const.SYSTEM_VER:$sfweb:$updates.stable:$fpweb:$updates.unstable} <div class="row">
{if $updates.notice} <div class="col-lg-6 mb-4">
<h5>{$panelstrings.notice}</h5> <div class="card shadow mb-4">
<p>{$updates.notice}</p> <div class="card-header">
{/if} <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
{$panelstrings.list|sprintf:$smarty.const.SYSTEM_VER:$sfweb:$updates.stable:$fpweb:$updates.unstable}
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.notice}</h6>
</div>
<div class="card-body">
{if $updates.notice}
<p>{$updates.notice}</p>
{else}
<p>{$panelstrings.no_news}</p>
{/if}
</div>
</div>
</div>
</div>

View File

@ -1,13 +1,15 @@
{include file='shared:admin_errorlist.tpl'}
<h2>{$panelstrings.head}</h2>
<p>{$panelstrings.descr}</p>
{include file='shared:errorlist.tpl'}
{html_form} {html_form}
<div class="col-xl-12 col-lg-12">
<table id="plugin-table"> <div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
<div class="table-responsive table-striped">
<table id="plugin-table" class="table">
<thead id="plugin-table-head"> <thead id="plugin-table-head">
<tr> <tr>
<th>{$panelstrings.name}</th> <th>{$panelstrings.name}</th>
@ -42,5 +44,8 @@
{/foreach} {/foreach}
</tbody> </tbody>
</table> </table>
</div>
</div>
</div>
</div>
{/html_form} {/html_form}

View File

@ -1,18 +1,25 @@
<h2>{$panelstrings.head}</h2> <div class="row">
<div class="col-xl-12 col-lg-12">
<p>{$panelstrings.descr}</p> <div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
{statics} {statics}
<fieldset><legend>{$panelstrings.preview}</legend>
{include file=previewstatic.tpl} {include file=previewstatic.tpl}
</fieldset> </fieldset>
{/statics} {/statics}
<p>{$panelstrings.confirm}</p> </br>
<p class="delete_confirm">{$panelstrings.confirm}</p>
{html_form} {html_form}
<input type="hidden" name="page" value="{$pageid}" /> <input type="hidden" name="page" value="{$pageid}" />
<div class="buttonbar"> <div class="buttonbar">
{html_submit name="delete" id="delete" value=$panelstrings.ok} {html_submit name="delete" id="delete" class="btn btn-primary" value=$panelstrings.ok}
{html_submit name="cancel" id="cancel" value=$panelstrings.cancel} {html_submit name="cancel" id="cancel" class="btn btn-secondary" value=$panelstrings.cancel}
</div> </div>
{/html_form} {/html_form}
</div>
</div>
</div>
</div>

View File

@ -1,52 +1,60 @@
{include file='shared:admin_errorlist.tpl'}
<h2>{$panelstrings.head}</h2>
{include file='shared:errorlist.tpl'}
<p>{$panelstrings.descr}</p>
{static_block} {static_block}
{html_form} {html_form}
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
<div class="table-responsive table-striped">
<table class="entrylist table">
<thead><tr>{*<th>{$panelstrings.sel}</th>*}
<th>{$panelstrings.name}</th>
<th class="main-cell">{$panelstrings.title}</th>
<th>{$panelstrings.author}</th>
<th>{$panelstrings.action}</th></tr></thead>
<tbody>
{static}
<tr>
{*<td><input type="checkbox" /></td>*}
<td>{$id}</td>
<td class="main-cell">
<a class="link-general"
href="{$panel_url|action_link:write}&amp;page={$id}">
{$subject|truncate:70}
</a>
</td>
<td>{$author}</td>
<td>
<a class="link-general"
href="{$id|link:page_link}">
<span class="ti-desktop"></span>
{$panelstrings.act_view}
</a>
<a
class="link-general"
href="{$panel_url|action_link:write}&amp;page={$id}">
<span class="ti-pencil-alt"></span>
{$panelstrings.act_edit}
</a>
<a class="link-delete"
href="{$panel_url|action_link:delete}&amp;page={$id}">
<span class="ti-trash"></span>
{$panelstrings.act_del}
</a>
</td>
<table class="entrylist"> </tr>
<thead><tr>{*<th>{$panelstrings.sel}</th>*}
<th>{$panelstrings.name}</th>
<th class="main-cell">{$panelstrings.title}</th>
<th>{$panelstrings.author}</th>
<th>{$panelstrings.action}</th></tr></thead>
<tbody>
{static}
<tr>
{*<td><input type="checkbox" /></td>*}
<td>{$id}</td>
<td class="main-cell">
<a class="link-general"
href="{$panel_url|action_link:write}&amp;page={$id}">
{$subject|truncate:70}
</a>
</td>
<td>{$author}</td>
<td>
<a class="link-general"
href="{$id|link:page_link}">
{$panelstrings.act_view}
</a>
<a
class="link-general"
href="{$panel_url|action_link:write}&amp;page={$id}">
{$panelstrings.act_edit}
</a>
<a class="link-delete"
href="{$panel_url|action_link:delete}&amp;page={$id}">
{$panelstrings.act_del}
</a>
</td>
</tr> {/static}
</tbody></table>
{/static} </div>
</tbody></table> </div>
</div>
</div>
</div>
{/html_form} {/html_form}
{/static_block} {/static_block}

View File

@ -63,6 +63,10 @@
$this->smarty->assign('static_id', 'static'.date_time()); $this->smarty->assign('static_id', 'static'.date_time());
$this->smarty->assign("sceditor_display", get_sceditor_display_value());
global $fp_config;
$this->smarty->assign("lang_locale", $fp_config['locale']['lang']);
if (isset($_GET['page'])) { if (isset($_GET['page'])) {
$id = $_GET['page']; $id = $_GET['page'];
$arr = static_parse($id); $arr = static_parse($id);

View File

@ -1,53 +1,102 @@
<h2>{$panelstrings.head}</h2> {include file='shared:admin_errorlist.tpl'}
{static_block}
{include file='shared:errorlist.tpl'} {if $preview}
<div class="row">
<div class="col-xl-12 col-lg-12">
{static_block} <div class="card shadow mb-4">
{if $preview} <div class="card-header">
<fieldset id="post-preview"><legend>{$panelstrings.preview}</legend> <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.preview}</h6>
</div>
<div class="card-body">
{include file=preview.tpl} {include file=preview.tpl}
</fieldset> </div>
{/if} </div>
</div>
{html_form} </div>
{/if}
<div class="row">
<div class="col-xl-8 col-lg-7">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
{html_form}
{static content=$post alwaysshow=true} {static content=$post alwaysshow=true}
<input type="text" name="subject" id="subject" class="form-control input_gray input-max-width" placeholder="{$panelstrings.subject}" {$error.subject|notempty:'class="field-error"'}
<p><label for="subject">{$panelstrings.subject}</label><br /> value="{$subject|default:$smarty.request.subject|default:$smarty.request.page|wp_specialchars:1}" />
<input type="text" name="subject" id="subject" {$error.subject|notempty:'class="field-error"'}
value="{$subject|default:$smarty.request.subject|default:$smarty.request.page|wp_specialchars:1}" /><br />
<input type="hidden" name="timestamp" value="{$date}" /> <input type="hidden" name="timestamp" value="{$date}" />
</p>
<p> <p>
<label for="content">{$panelstrings.content}</label> <label for="content"></label>
</p> <textarea name="content" {$error.content|notempty:'class="field-error"'} id="content_textarea" placeholder="{$panelstrings.content}" class="form-control">{$content|default:$smarty.request.content|htmlspecialchars}</textarea><br />
{toolbar} {if $sceditor_display!='disable'}
<p> <script src="{$smarty.const.BLOG_BASEURL}/fp-includes/bootstrap/js/bootstrap.min.js"></script>
<textarea name="content" {$error.content|notempty:'class="field-error"'} id="content" <!-- Here is the SCEditor -->
rows="20" cols="74">{$content|default:$smarty.request.content|htmlspecialchars}</textarea><br /> <script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/sceditor.min.js"></script>
{if $sce_display=='bbcode'}
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/formats/bbcode.js"></script>
{else}
<script src="{$smarty.const.BLOG_BASEURL}/admin/res/sceditor/formats/xhtml.js"></script>
{/if}
<script src="{$smarty.const.BLOG_BASEURL}/fp-interface/lang/{$lang_locale}/sceditor.js"></script>
<script>
// Replace the textarea #example with SCEditor
var sce_display = "{$sceditor_display}";
var lang_editor = "{$lang_locale}";
var eRoot = "admin/res/sceditor/";
var FileManagerDir = "{$smarty.const.BLOG_BASEURL}/fp-plugins/sceditorfilemanager";
{literal}
var textarea = document.getElementById('content_textarea');
sceditor.create(textarea, {
emoticonsRoot: eRoot,
format: sce_display,
height: "400px",
locale: lang_editor
//style: '../../res/sceditor/themes/content/default.min.css'
});
set_media_button(FileManagerDir);
</script>
{/literal}
{/if}
{*here will go a plugin hook*} {*here will go a plugin hook*}
</p> </p>
</div>
<fieldset id="admin-static-filename"><legend>{$panelstrings.fieldset2}</legend> </div>
<input type="hidden" name="oldid" id="oldid" value="{$id|default:$smarty.request.oldid}" /> </div>
<p><label for="id">{$panelstrings.pagename}</label><br /> <div class="col-xl-4 col-lg-5">
<input type="text" name="id" id="id" class="maxsize{$error.id|notempty:' field-error'}" <div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.pagename}</h6>
</div>
<div class="card-body">
<input type="hidden" name="oldid" id="oldid" class="form-control input_gray" value="{$id|default:$smarty.request.oldid}" />
<input type="text" name="id" id="id" class="maxsize{$error.id|notempty:' field-error'} form-control input_gray "
value="{$smarty.request.id|default:$smarty.request.page|default:$static_id}" /></p> value="{$smarty.request.id|default:$smarty.request.page|default:$static_id}" /></p>
{html_submit name="save" id="save" value=$panelstrings.submit accesskey=s} {html_submit name="save" id="save" class="btn btn-primary" value=$panelstrings.submit accesskey=s}
{html_submit name="preview" id="preview" value=$panelstrings.preview accesskey=p} {html_submit name="preview" id="preview" class="btn btn-primary" value=$panelstrings.preview accesskey=p}
</fieldset> </fieldset>
</div>
</div>
</div>
</div>
{/static}
{/static}
{/html_form} {/html_form}
{/static_block} {/static_block}
<!-- Bootstrap Modal (Open the editor) -->
<div class="modal fade" id="flatpress-files-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">File Manager</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
NOT WORKING YEY :(
</div>
</div>
</div>
</div>

View File

@ -1,23 +1,48 @@
{include file=shared:errorlist.tpl} {include file=shared:admin_errorlist.tpl}
<div id="current-theme"> <div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head1}</h6>
</div>
<div class="card-body">
<div id="current-theme">
<img src="{$current_style.preview}" class="current-theme-img" alt="{$current_style.name}" />
<div class="current-theme-description">
<h3>{$current_style.title} &#8212; {$current_style.author|default:$panelstrings.noauthor}</h3>
{$current_style.description|default:$panelstrings.nodescr}
</div>
</div>
</div>
</div>
</div>
</div>
<h2>{$panelstrings.head1}</h2> {if $available_styles}
<img src="{$current_style.preview}" alt="{$current_style.name}" />
<h5>{$current_style.title} &#8212; {$current_style.author|default:$panelstrings.noauthor}</h5> <div class="row">
{$current_style.description|default:$panelstrings.nodescr} <div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div class="card-header all_radius text-center red_background">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head2}</h6>
</div>
</div>
</div>
</div> </div>
<div id="available-themes"> <div id="available-themes">
<h2>{$panelstrings.head2}</h2> <div class="row">
<p>{$panelstrings.descr}</p>
{if $available_styles}
<ul >
{foreach from=$available_styles item=thm} {foreach from=$available_styles item=thm}
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary text-center"><a href="{$action_url|cmd_link:select:$thm.id}">{$thm.title}</a></h6>
</div>
<div class="card-body">
<ul >
<li> <li>
<h5><a href="{$action_url|cmd_link:select:$thm.id}">{$thm.title}</a></h5> <h5><a href="{$action_url|cmd_link:select:$thm.id}">{$thm.title}</a></h5>
<a href="{$action_url|cmd_link:select:$thm.id}"><img src="{$thm.preview}" alt="{$thm.name}" /></a> <a href="{$action_url|cmd_link:select:$thm.id}"><img src="{$thm.preview}" alt="{$thm.name}" /></a>
@ -25,8 +50,12 @@
<p>{$thm.description|default:$panelstrings.nodescr}</p> <p>{$thm.description|default:$panelstrings.nodescr}</p>
</li> </li>
</ul>
</div>
</div>
</div>
{/foreach} {/foreach}
</ul> </div>
{/if} {/if}

View File

@ -1,36 +1,59 @@
{include file=shared:errorlist.tpl} {include file=shared:admin_errorlist.tpl}
<div id="current-theme"> <div class="row">
<h2>{$panelstrings.head1}</h2> <div class="col-xl-12 col-lg-12">
<img src="{$current_theme.preview}" alt="{$current_theme.name}" /> <div class="card shadow mb-4">
<h5> <div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head1}</h6>
</div>
<div class="card-body">
<div id="current-theme">
<img src="{$current_theme.preview}" alt="{$current_theme.name}" class="current-theme-img"/>
<div class="current-theme-description">
<h3>
{$current_theme.title} &#8212; {$current_theme.author|default:$panelstrings.noauthor} {$current_theme.title} &#8212; {$current_theme.author|default:$panelstrings.noauthor}
</h5> </h3>
{$current_theme.description|default:$panelstrings.nodescr} {$current_theme.description|default:$panelstrings.nodescr}
</div>
</div> <!-- end of #current-theme --> </div>
</div>
</div>
</div>
</div>
{if $available_themes} {if $available_themes}
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div class="card-header all_radius text-center red_background">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head2}</h6>
</div>
</div>
</div>
</div>
<div id="available-themes"> <div id="available-themes">
<div class="row">
<h2>{$panelstrings.head2}</h2>
<p>{$panelstrings.descr}</p>
<ul>
{foreach from=$available_themes item=thm} {foreach from=$available_themes item=thm}
<div class="col-lg-6 mb-4">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary text-center"><a href="{$action_url|cmd_link:select:$thm.id}">{$thm.title}</a></h6>
</div>
<div class="card-body">
<ul>
<li> <li>
<h5><a href="{$action_url|cmd_link:select:$thm.id}">{$thm.title}</a></h5>
<a href="{$action_url|cmd_link:select:$thm.id}"><img src="{$thm.preview}" alt="{$thm.name}" /></a> <a href="{$action_url|cmd_link:select:$thm.id}"><img src="{$thm.preview}" alt="{$thm.name}" /></a>
<p>{$thm.description|default:$panelstrings.nodescr}</p> <p>{$thm.description|default:$panelstrings.nodescr}</p>
</li> </li>
</ul>
</div>
</div>
</div>
{/foreach} {/foreach}
</ul> </div>
</div>
</div> <!-- end of #available-themes -->
{/if} {/if}

View File

@ -139,7 +139,6 @@
} }
return 1; return 1;
} }
} }

View File

@ -1,7 +1,7 @@
<h2>{$panelstrings.head}</h2> <h2>{$panelstrings.head}</h2>
<p>{$panelstrings.descr}</p> <p>{$panelstrings.descr}</p>
{include file='shared:errorlist.tpl'} {include file='shared:admin_errorlist.tpl'}

View File

@ -1,12 +1,13 @@
{if $smarty.request.mod != 'inline'} {include file='shared:admin_errorlist.tpl'}
<h2>{$panelstrings.head}</h2>
<p>{$panelstrings.descr}</p>
{/if}
{include file='shared:errorlist.tpl'} <div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
{if $success} <div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.fset1}</h6>
</div>
<div class="card-body">
{if $success}
<ul id="admin-uploader-filelist"> <ul id="admin-uploader-filelist">
{foreach from=$uploaded_files item=file} {foreach from=$uploaded_files item=file}
{* {*
@ -18,29 +19,93 @@
<li>{$file}</li> <li>{$file}</li>
{/foreach} {/foreach}
</ul> </ul>
{/if}
{html_form enctype='multipart/form-data'}
{if $smarty.request.mod != 'inline'}
<fieldset><legend>{$panelstrings.fset1}</legend>
{/if}
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
{if $smarty.request.mod != 'inline'}
</fieldset>
{/if} {/if}
<div class="buttonbar"> {html_form enctype='multipart/form-data'}
{html_submit name="upload" id="upload" value=$panelstrings.submit} <div class="row">
<div class="col-lg-6 mb-4">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
</div>
<div class="col-lg-6 mb-4">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text ti-folder"></span>
</div>
<div class="custom-file">
<input type="file" class="custom-file-input" name="upload[]" />
<label class="custom-file-label" for="inputGroupFile01">{$panelstrings.choose_file}</label>
</div>
</div>
</div>
<div class="buttonbar upload-buttom">
{html_submit name="upload" id="upload" class="btn btn-primary" value=$panelstrings.submit}
</div>
</div>
</div>
</div>
</div>
</div> </div>
{/html_form} {/html_form}

View File

@ -1,18 +1,35 @@
<h2>{$panelstrings.head}</h2> {include file='shared:admin_errorlist.tpl'}
<p>{$panelstrings.descr}</p>
{include file='shared:errorlist.tpl'} <!-- Jquery and Jqueryui (For widgets) -->
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<div class="row">
<div class="col-xl-12 col-lg-12">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.head}</h6>
</div>
<div class="card-body">
<p>{$panelstrings.descr}</p>
</div>
</div>
</div>
</div>
{html_form id="admin-widgets-default"} {html_form id="admin-widgets-default"}
<div id="available-widgets"> <div class="row">
<h2>{$panelstrings.availwdgs}</h2> <div class="col-xl-4 col-lg-5">
<div class="card shadow mb-4">
<div id="widget-trashcan"> <div class="card-header">
{$panelstrings.trashcan} <h6 class="m-0 font-weight-bold text-primary">{$panelstrings.availwdgs}</h6>
</div> </div>
<div class="card-body">
<div id="widget-trashcan">
<span class="ti-trash"></span> {$panelstrings.trashcan}
</div>
<div id="available-widgets">
<ul> <ul>
{foreach from=$fp_registered_widgets key=widgetid item=widget} {foreach from=$fp_registered_widgets key=widgetid item=widget}
<li class="widget-class widget-id-{$widgetid}"> <li class="widget-class widget-id-{$widgetid}">
@ -22,24 +39,35 @@
{* class is for javascript: this input will be converted into a type="text" :) *} {* class is for javascript: this input will be converted into a type="text" :) *}
<input class="textinput" style="float:right" type="hidden" /> <input class="textinput" style="float:right" type="hidden" />
{/if} {/if}
<p>{$widget.name}</p> <p><span class="ti-move"></span> {$widget.name}</p>
</li> </li>
{/foreach} {/foreach}
</ul> </ul>
<div class="buttonbar"> <div class="buttonbar text-center">
<input type="submit" name="save" value="{$panelstrings.submit}" /> <input type="submit" name="save" class="btn btn-primary" value="{$panelstrings.submit}" />
</div> </div>
</div> </div>
</div>
</div>
</div>
<div class="col-xl-8 col-lg-7">
<div class="card shadow mb-4">
<div class="card-header">
<h6 class="m-0 font-weight-bold text-primary">{$panelstrings.themewdgs}</h6>
</div>
<div class="card-body widgetset_theme">
{$panelstrings.themewdgsdescr}
<div id="admin-widgetset-list"> <div id="admin-widgetset-list">
</br>
<h2>{$panelstrings.themewdgs}</h2>
<p>{$panelstrings.themewdgsdescr}</p>
<ul> <ul>
{assign var=counter value=0}
{foreach from=$widgetlist key=widgetset item=widgetarr} {foreach from=$widgetlist key=widgetset item=widgetarr}
{if ($counter%2)==0}
<div class="row justify-content-center">
{/if}
<div class="col-xl-5 col-lg-5">
<li class="admin-widgetset"> <li class="admin-widgetset">
<h3 class="widgetset-name"> <h3 class="widgetset-name">
{$panelstrings.stdsets[$widgetset]|default:$widgetset} {$panelstrings.stdsets[$widgetset]|default:$widgetset}
@ -55,13 +83,18 @@
<input class="textinput" style="float:right" <input class="textinput" style="float:right"
type="text" value="{$widget.params}"/> type="text" value="{$widget.params}"/>
{/if} {/if}
<p> {$widget.name} </p> <p> <span class="ti-move"></span> {$widget.name} </p>
</li> </li>
{foreachelse} {foreachelse}
<li class="widget-placeholder"> Drop here </li> <li class="widget-placeholder"><span class="ti-layers"></span> Drop here </li>
{/foreach} {/foreach}
</ul> </ul>
</li> </li>
</div>
{if ($counter%2)!=0}
</div>
{/if}
{assign var=counter value=$counter+1}
{/foreach} {/foreach}
@ -102,9 +135,13 @@
{/if} {/if}
</div> </div>
<div class="buttonbar text-center">
<div class="buttonbar"> {html_submit name="save" id="save" class="btn btn-primary" value=$panelstrings.submit}
{html_submit name="save" id="save" value=$panelstrings.submit} </div>
</div>
</div>
</div>
</div> </div>
{/html_form} {/html_form}
<script src="{$smarty.const.BLOG_BASEURL}admin/panels/widgets/admin.widgets.js"></script>

View File

@ -1,7 +1,7 @@
<h2>{$panelstrings.head}</h2> <h2>{$panelstrings.head}</h2>
<p>{$panelstrings.descr}</p> <p>{$panelstrings.descr}</p>
{include file='shared:errorlist.tpl'} {include file='shared:admin_errorlist.tpl'}
{html_form} {html_form}

View File

@ -1,197 +1,716 @@
/* html {
height: 100%;
compatibility for old themes, soon
this hackish and ugly css will be
DROPPED
*/
#admin-tabmenu {
text-align: left;
padding-right: 0px;
padding-left: 0px;
z-index: 1;
padding-bottom: 0px;
margin: 12px 0px 0px;
padding-top: 0px;
border-bottom: black 2px solid;
font-size: 80%;
_font-size: 90%;
font-weight: normal;
} }
body {
#admin-tabmenu li { height: 100%;
display: inline; font-family: 'Nunito', sans-serif;
overflow: hidden; background-color: #f2f2f2;
list-style-type: none;
padding-left: -10px
} }
.left-sidebar {
#admin-tabmenu a { background-color: #fff !important;
border-right: black 2px solid;
padding-right: 5px;
border-top: black 2px solid;
padding-left: 5px;
background: #f9f9f9;
padding-bottom: 0px;
margin: 0px;
border-left: black 2px solid;
padding-top: 2px;
border-bottom: black 2px solid;
text-decoration: none
} }
#cpmain ul, #main li{ .left-sidebar a {
list-style-type:none; color: #212529 !important;
} }
#cpmain ul li:before { .master-row {
content: none; height: 100%;
margin-left: 14rem !important;
padding-right: 15px;
} }
.top-row {
#admin-tabmenu a#admin-tab-current {
background: #f9f9f9;
color: black;
border-bottom: #f9f9f9 3px solid;
}
.admin-mainmenu-item {
clear:both;
display:block;
padding:1em;
}
#admin-content {
border-right: black 2px solid;
padding-right: 20px;
border-top: black 2px;
padding-left: 20px;
z-index: 2;
padding-bottom: 20px;
border-left: black 2px solid;
padding-top: 20px;
border-bottom: black 2px solid;
_font-size: 1em;
}
#admin-content table {
border-collapse: collapse;
width: 100%; width: 100%;
_width: 470px; color: #fff;
_font-size:100%; align-items: center;
height: 56px;
} }
#admin-content td { .top-row h3 {
border-bottom: solid 1px black; margin: 0px;
width: 8px; font-size: 1.5rem;
font-size: 0.8em;
_font-size:1em;
padding: 4px;
} }
#admin-content td.main_cell { .top-right-bar {
text-align: left; text-align: right;
}
.top-right-bar .nav-link {
padding: 0px;
padding-left: 1.5rem;
font-size: 1.25rem;
}
.top-right-bar a {
color: #fff !important;
}
.top-right-bar .nav-item, .top-right-bar .navbar-nav, .top-right-bar .nav-link {
display: inline;
}
.top-right-bar .nav-item {
float: right;
}
.feather {
width: 16px;
height: 16px;
vertical-align: text-bottom;
}
/*
* Sidebar
*/
.sidebar {
position: fixed;
top: 0;
bottom: 0;
left: 0;
z-index: 300; /* Behind the navbar */
padding: 0; /* Height of navbar */
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
width: 14rem !important;
}
.sidebar-sticky {
position: relative;
top: 0;
height: calc(100vh - 48px);
padding-top: .5rem;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
font-size: 0.9rem;
}
@supports ((position: -webkit-sticky) or (position: sticky)) {
.sidebar-sticky {
position: -webkit-sticky;
position: sticky;
}
}
.sidebar .nav-link {
font-weight: 500;
color: #333;
padding: 0.8rem;
}
.sidebar .nav-link .feather {
margin-right: 4px;
color: #999;
}
.sidebar .nav-link.active {
border-left: 5px solid #aa4142;
background-color: #f9f9f9;
}
.sidebar .nav-link:hover .feather,
.sidebar .nav-link.active .feather {
color: inherit;
}
.sidebar-heading {
font-size: .75rem;
text-transform: uppercase;
}
/*
* Content
*/
[role="main"] {
padding-top: 133px; /* Space for fixed navbar */
}
@media (min-width: 768px) {
[role="main"] {
padding-top: 0px; /* Space for fixed navbar */
margin-top: -7.5rem !important;
}
}
/*
* Navbar
*/
.navbar-brand {
padding-top: .75rem;
padding-bottom: .75rem;
font-size: 1rem;
background-color: rgba(0, 0, 0, .25);
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25);
}
.navbar .form-control {
padding: .75rem 1rem;
border-width: 0;
border-radius: 0;
}
.admin-logo {
height: 56px;
text-align: center;
}
.admin-logo img {
height: 75%;
width: auto;
margin-top:5px
}
.admin-logo-border {
height: 1px;
background-color: #eee;
margin: 0 1.5rem;
}
.submenu {
margin-left: 0rem;
border-left: 5px solid #aa4142;
background-color:#f9f9f9;
}
.submenu li {
margin-left: 0rem;
}
.submenu .nav-link {
padding-left: 3rem;
}
.sub-active {
background-color: #d9d9d9;
}
.form-control-dark {
color: #fff;
background-color: rgba(255, 255, 255, .1);
border-color: rgba(255, 255, 255, .1);
}
.form-control-dark:focus {
border-color: transparent;
box-shadow: 0 0 0 3px rgba(255, 255, 255, .25);
}
.top-nav {
padding: 0px;
}
.top-background {
width: 100%;
padding-bottom: 9rem !important;
padding-top: 57px;
}
.top-color {
background-color: #aa4142;
}
.bg-gradient-primary {
background: -moz-linear-gradient(45deg,rgba(184,60,50,1) 0%,rgba(254,80,68,1) 99%,rgba(255,81,69,1) 100%);
background: -webkit-gradient(linear,left bottom,right top,color-stop(0%,rgba(184,60,50,1)),color-stop(99%,rgba(254,80,68,1)),color-stop(100%,rgba(255,81,69,1)));
background: -webkit-linear-gradient(45deg,rgba(184,60,50,1) 0%,rgba(254,80,68,1) 99%,rgba(255,81,69,1) 100%);
background: -o-linear-gradient(45deg,rgba(184,60,50,1) 0%,rgba(254,80,68,1) 99%,rgba(255,81,69,1) 100%);
background: -ms-linear-gradient(45deg,rgba(184,60,50,1) 0%,rgba(254,80,68,1) 99%,rgba(255,81,69,1) 100%);
background: linear-gradient(45deg,rgba(184,60,50,1) 0%,rgba(254,80,68,1) 99%,rgba(255,81,69,1) 100%);
background-color: rgba(0, 0, 0, 0);
background-size: auto;
background-color:rgba(0,0,0,0);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5145',endColorstr='#b83c32',GradientType=1);
background-size: cover;
}
.text-primary {
color: #aa4142 !important;
}
a {
color: #aa4142 !important;
}
a:hover {
text-decoration: none !important;
}
.quick_menu ul, .maintain ul {
list-style: none;
}
.sidebar-sticky span {
color: #aa4142;
}
#footer {
text-align: center;
margin-left: 14rem;
margin-right: 15px;
font-size: 0.8rem;
opacity: 0.6;
}
.sceditor-container {
width: 100% !important;
}
.sceditor-container textarea {
max-width: 100% !important;
}
.card-header .text-primary {
color: #212529 !important;
}
.shadow {
box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
}
.form-control::placeholder {
color: #bdbdbd;
}
.form-control {
margin-bottom: 1rem;
background-color: #fbfbfb;
}
.new_entry_buttons {
text-align: center;
}
.btn {
box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
padding-left: 1rem;
padding-right: 1rem;
}
.btn-primary {
background-color: #aa4142;
border: 1px solid #933233;
color: #fff !important;
}
.btn-secondary {
color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
background-color: #802627 !important;
border: 1px solid #933233 !important;
}
.buttonbar {
margin-bottom: 0.5rem;
}
ul {
list-style: square;
}
.sidebar .nav-link:hover {
padding-left: 2rem;
transition: 1s;
background-color: #f9f9f9;
}
.sidebar .nav-link.active:hover {
padding-left: 0.8rem !important;
}
.sidebar .nav-link.sub-active:hover {
padding-left: 3rem !important;
background-color: #d9d9d9;
}
.navbar.navbar-dark.flex-md-nowrap.top-nav.top-color {
position: fixed;
z-index: 200;
width: 100%;
border-bottom: 1px solid #8a2a2b;
}
.select_filter {
width: auto;
float: left;
margin-right: 0.5rem;
}
input, textarea, select {
max-width: 300px;
}
.upload-buttom {
padding-left: 15px;
}
.cat-textarea {
max-width: 100%;
}
.input-max-width {
max-width: 100% !important;
}
#widget-trashcan {
text-align: center;
padding: 1rem;
background-color: #aa4142;
border: 1px solid #933233;
border-radius: 4px;
color:#fff;
font-weight: bold; font-weight: bold;
margin: 0 3rem;
margin-bottom: 0px;
margin-bottom: 1rem;
}
#available-widgets ul {
list-style: none;
padding: 0px;
text-align: center;
}
#available-widgets ul li, .admin-widgetset li {
background-color: rgba(0, 0, 0, 0.05);
margin: 0.5rem 5rem;
padding: 0.5rem;
border-radius: 4px;
border: 1px solid #dbdbdb;
}
#available-widgets p {
margin-bottom: 0px;
}
#errorlist ul {
list-style: none;
}
.msgs.warnings {
padding: 0px;
}
.table {
border-left: 1px solid #dee2e6;
border-right: 1px solid #dee2e6;
border-bottom: 1px solid #dee2e6;
}
.table thead {
background-color: #aa4142;
color: #fff;
}
.red_background {
background-color: #212529;
}
.red_background .text-primary {
color: #fff !important;
}
.card-header a {
color: #212529 !important;
}
#admin-widgetset-list ul {
list-style: none;
padding: 0px;
text-align: center;
}
.admin-widgetset p {
margin-bottom: 0px;
}
.widgetset_theme {
text-align: center;
}
.admin-widgetset {
background-color: rgba(106, 106, 106, 0.05);
width: 100%;
padding: 0.5rem 0;
margin-bottom: 2rem;
border: 1px solid #e8e8e8;
border-radius: 4px;
}
.current-theme-img {
float: left;
}
.current-theme-description {
float: left;
margin-left: 2rem;
margin-top: 1rem;
}
.current-theme-description h3 {
font-weight: bold;
}
#available-themes {
text-align: center;
}
#available-themes ul {
list-style: none;
padding: 0px;
}
#available-themes p {
margin-top: 0.5rem;
}
#available-themes h5 {
display: none;
}
.mobile-menu {
display: none;
}
@media only screen and (max-width: 1100px) {
.top-row h3 {
font-size: 1.2rem !important;
}
.top-right-bar .nav-link {
font-size: 1.1rem !important;
}
.top-row .col-lg-6 {
width: 60%;
}
.top-right-bar {
text-align: right;
width: 40% !important;
}
.top-row .top_menu_item {
display: none;
}
}
@media only screen and (max-width:768px) {
.master-row {
margin-left: 0px !important;
}
[role="main"] {
padding-top: 0px;
margin-top: -7.5rem;
}
#footer {
margin-left: 0px;
}
.top-row .col-lg-6 h3 {
display: none;
}
.mobile-menu {
display: block;
}
.top-row .col-lg-6 {
width: 20%; width: 20%;
}
.top-right-bar {
width: 80% !important;
}
#sidebar {
position: absolute;
z-index: 1000;
width: 100% !important;
height: 100%;
display: none;
}
.submenu .nav-link {
padding-left: 0rem;
}
.sidebar .nav-link {
text-align: center;
}
.sidebar-sticky {
height: auto;
}
.submenu {
border: 1px solid #ccc;
border-bottom: 1px solid #ececec;
}
.sidebar .nav-link.active {
border-top: 1px solid #ececec;
border-bottom: 1px solid #ececec;
}
.sidebar .nav-link:hover {
padding-left: 0.8rem !important;
background-color: #fff;
}
#available-widgets ul li, .admin-widgetset li {
margin: 0.5rem 0.5rem;
}
#close-button {
display: block !important;
}
} }
#admin-content th { #close-button {
border-bottom: solid 2px black; display: none;
}
padding: 4px; #close-button span {
font-size: 0.75em; color: #fff;
_font-size: 100%; }
.display_off {
display: none !important;
}
.display_on {
display: block !important;
}
.btn {
margin-bottom: 0.5rem;
}
img {
max-width: 100%;
height: auto;
}
.paginator-left {
float: left;
padding-top: 0.2rem;
}
.paginator-right {
float: right;
}
.widget-placeholder {
background-color:#212529 !important;
border: 1px solid#000 !important;
color: #fff !important;
}
.login-background {
background-color: #aa4142;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 100 100'%3E%3Crect x='0' y='0' width='51' height='51' fill='%23a13e3f'/%3E%3C/svg%3E");
}
.login-background input {
max-width: 100%;
}
.login-background img {
width: 50%;
}
.login-background .input-group {
margin: 1rem 0;
}
.login-background #errorlist {
margin-top: 3rem !important;
}
.msgs.errors {
padding-left: 0px;
}
#content_textarea {
max-width: 100%;
height: 250px;
}
.lc_table ul {
padding-left: 0px;
list-style: none;
margin-bottom: 0px;
}
.lc_table li {
overflow:hidden;
width: 100%;
border-bottom: 1px solid #dee2e6;
border-right: 1px solid #dee2e6;
}
.lc_table li:nth-of-type(2n+1) {
background-color: rgba(0,0,0,.05);
}
.top-lc-table {
border-top: 1px solid #dee2e6;
background-color: #aa4142;
font-weight: lighter;
font-style: italic; font-style: italic;
overflow:hidden;
width: 100%;
} }
#subject { .comment-quote {
font-size: 18px; margin: 0rem;
font-weight: bold;
width: 99%;
} }
.underOpt { .no_comments {
font-size: 80%; text-align: center;
font-style: oblique;
margin: .5em 0 0 0
} }
.maxsize { .top-lc-table p {
width: 99%; color: #fff;
} }
input.maxsize { width: 99% } .lc_table p {
width: 50%;
.msg { float: left;
font-weight: bold; text-align: center;
border-left: 1px solid #dee2e6;
margin-bottom: 0px;
border-top: 0px;
padding: .75rem;
} }
.error { .sceditor-container iframe, .sceditor-container textarea {
color: red; margin: 0px !important;
padding-left: 10px; background: #fbfbfb !important;
} }
.disabled { .sceditor-button.flatpress-media {
background-color: red; background-image: url('icons/drive_disk.png');
background-color: #aa4142;
background-position: center;
background-repeat: no-repeat;
} }
.enabled { .sceditor-button.flatpress-media:hover {
background-color: green; background-image: url('icons/drive_disk.png');
background-position: center;
background-repeat: no-repeat;
} }
.locked { #flatpress-files-modal .modal-header {
background-color: grey; background-color: #aa4142;
} color: #fff;
.draft {
background-color: lightgrey;
}
/* ===== NOTIFICATION ===== */
#main ul.msgs, ul.msgs {
margin-top: 1em;
margin-left: 0em;
padding: 1em 2em
}
.errors {
color: #901d1d;
border-top: 1px solid;
border-bottom: 1px solid;
border-color: #ffbbbb;
background: #ffdddd
}
.errors a {
color: #901d1d;
text-decoration: underline;
font-weight: normal
}
.notifications {
color : #1d901d;
border-top: 1px solid #bbffbb;
border-bottom: 1px solid #bbffbb;
background: #ddffdd
}
.field-error {
border: red 1px solid;
background: #fdd
} }

46
admin/res/admin.js Normal file
View File

@ -0,0 +1,46 @@
// This function generates the menu icons
function generate_menu_icons() {
var admin_tabs = ["main","entry","static","uploader","widgets","plugin","themes","config","maintain"];
var admin_icons = ["panel","pencil-alt2","file","upload","move","hummer","palette","settings","check-box"];
for(var i=0; i<admin_tabs.length; ++i) {
var new_span = document.getElementById("admin-link-"+admin_tabs[i]);
new_span.insertAdjacentHTML('afterbegin', "<span class=\"ti-"+admin_icons[i]+"\"></span>");
}
}
// Responsive functions
function mobile_close_button() {
// This close the menu and show the page
var open_element1 = document.getElementsByClassName("mobile_menu_hide");
var open_element2 = document.getElementById("sidebar");
for(var i=0; i<open_element1.length; ++i ) {
open_element1[i].classList.remove("display_off");
}
open_element2.classList.remove("display_on");
}
function mobile_open_button() {
// This open the menu and close the page
var open_element1 = document.getElementsByClassName("mobile_menu_hide");
var open_element2 = document.getElementById("sidebar");
for(var i=0; i<open_element1.length; ++i ) {
open_element1[i].classList.add("display_off");
}
open_element2.classList.add("display_on");
}
// End Responsive functions
// Editor media functions
// Create the button
function set_media_button() {
var button = '<div class="sceditor-group"><a class="sceditor-button flatpress-media" onclick="open_media(FileManagerDir);"></a></div>';
$( ".sceditor-toolbar" ).append(button);
}
// Open the botton
function open_media(FileManagerDir) {
FileManagerDir = FileManagerDir.concat("/plugin.sceditorfilemanager.php");
//$(".modal-body").load(FileManagerDir);
$('#flatpress-files-modal').modal();
}

BIN
admin/res/fp-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 965 B

View File

@ -0,0 +1,9 @@
Presenting, Nomicons: The Full Monty :o
Credits:
Oscar Gruno, aka Nominell v. 2.0 -> oscargruno@mac.com
Andy Fedosjeenko, aka Nightwolf -> bobo@animevanguard.com
Copyright (C) 2001-Infinity, Oscar Gruno & Andy Fedosjeenko
You can redistribute these files as much as you like, as long as you keep this file with them and give us the proper credit. You may even rape them if you please, just give us credit for our work.

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(e){"use strict";var t="sce-autodraft-"+location.pathname+location.search;function i(e){localStorage.removeItem(e||t)}e.plugins.autosave=function(){var a,e=this,o=t,r=864e5,n=function(e){localStorage.setItem(o,JSON.stringify(e))},s=function(){return JSON.parse(localStorage.getItem(o))};e.init=function(){var e=(a=this).opts&&a.opts.autosave||{};n=e.save||n,s=e.load||s,o=e.storageKey||o,r=e.expires||r,function(){for(var e=0;e<localStorage.length;e++){var t=localStorage.key(e);if(/^sce\-autodraft\-/.test(t)){var a=JSON.parse(localStorage.getItem(o));a&&a.time<Date.now()-r&&i(t)}}}()},e.signalReady=function(){for(var e=a.getContentAreaContainer();e;){if(/form/i.test(e.nodeName)){e.addEventListener("submit",i.bind(null,o),!0);break}e=e.parentNode}var t=s();t&&(a.sourceMode(t.sourceMode),a.val(t.value,!1),a.focus(),t.sourceMode?a.sourceEditorCaret(t.caret):a.getRangeHelper().restoreRange()),n({caret:this.sourceEditorCaret(),sourceMode:this.sourceMode(),value:a.val(null,!1),time:Date.now()})},e.signalValuechangedEvent=function(e){n({caret:this.sourceEditorCaret(),sourceMode:this.sourceMode(),value:e.detail.rawValue,time:Date.now()})}},e.plugins.autosave.clear=i}(sceditor);

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(u,e){"use strict";var a=e.dom,c=/(^|\s)(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/watch\?v=)([^"&?\/ ]{11})(?:\&[\&_\?0-9a-z\#]+)?(\s|$)/i;e.plugins.autoyoutube=function(){this.signalPasteRaw=function(e){if(!a.closest(this.currentNode(),"code")&&(e.html||e.text)){var t=u.createElement("div");e.html?t.innerHTML=e.html:t.textContent=e.text,function e(t){for(var o,n=t.firstChild;n;){if(3===n.nodeType){var i=n.nodeValue,r=n.parentNode,s=i.match(c);s&&(r.insertBefore(u.createTextNode(i.substr(0,s.index)+s[1]),n),r.insertBefore(a.parseHTML('<iframe width="560" height="315" frameborder="0" src="https://www.youtube-nocookie.com/embed/'+(o=s[2])+'" data-youtube-id="'+o+'" allowfullscreen></iframe>'),n),n.nodeValue=s[3]+i.substr(s.index+s[0].length))}else a.is(n,"code")||e(n);n=n.nextSibling}}(t),e.html=t.innerHTML}}}}(document,sceditor);

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(n){"use strict";var v="data:image/gif;base64,R0lGODlhlgBkAPABAH19ffb29iH5BAAKAAAAIf4aQ3JlYXRlZCB3aXRoIGFqYXhsb2FkLmluZm8AIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAlgBkAAAC1YyPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNarfcrvcLDovH5LL5jE6r1+y2+w2Py+f0uv2OvwD2fP6iD/gH6Pc2GIhg2JeQSNjGuLf4GMlYKIloefAIUEl52ZmJyaY5mUhqyFnqmQr6KRoaMKp66hbLumpQ69oK+5qrOyg4a6qYV2x8jJysvMzc7PwMHS09TV1tfY2drb3N3e39DR4uPk5ebn6Onq6+zt7u/g4fL99UAAAh+QQACgAAACwAAAAAlgBkAIEAAAB9fX329vYAAAAC3JSPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNarfcrvcLDovH5LL5jE6r1+y2+w2Py+f0uv2OvwD2fP4iABgY+CcoCNeHuJdQyLjIaOiWiOj4CEhZ+SbZd/nI2RipqYhQOThKGpAZCuBZyArZprpqSupaCqtaazmLCRqai7rb2av5W5wqSShcm8fc7PwMHS09TV1tfY2drb3N3e39DR4uPk5ebn6Onq6+zt7u/g4fLz9PX29/j5/vVAAAIfkEAAoAAAAsAAAAAJYAZACBAAAAfX199vb2AAAAAuCUj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rO9/4PDAqHxKLxiEwql8ym8wmNSqfUqvWKzWq33K73Cw6Lx+Sy+YxOq9fstvsNj8vn9Lr9jr8E9nz+AgAYGLjQVwhXiJgguAiYgGjo9tinyCjoKLn3hpmJUGmJsBmguUnpCXCJOZraaXoKShoJe9DqehCqKlnqiZobuzrbyvuIO8xqKpxIPKlwrPCbBx0tPU1dbX2Nna29zd3t/Q0eLj5OXm5+jp6uvs7e7v4OHy8/T19vf4+fr7/P379UAAAh+QQACgAAACwAAAAAlgBkAIEAAAB9fX329vYAAAAC4JSPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNarfcrvcLDovH5LL5jE6r1+y2+w2Py+f0uv2OvwT2fP6iD7gAMEhICAeImIAYiFDoOPi22KcouZfw6BhZGUBZeYlp6LbJiTD6CQqg6Vm6eQqqKtkZ24iaKtrKunpQa9tmmju7Wwu7KFtMi3oYDMzompkHHS09TV1tfY2drb3N3e39DR4uPk5ebn6Onq6+zt7u/g4fLz9PX29/j5+vv8/f31QAADs=",c=void 0!==window.FileReader,u=/data:[^;]+;base64,/i;function g(e){for(var t=e.substr(5,e.indexOf(";")-5),n=atob(e.substr(e.indexOf(",")+1)),r=new Uint8Array(n.length),i=0;i<n.length;i++)r[i]=n[i].charCodeAt(0);try{return new Blob([r],{type:t})}catch(e){return null}}n.plugins.dragdrop=function(){if(c){var A,r,o,i,a,s=0;this.signalReady=function(){A=(r=this).opts.dragdrop||{},o=A.handleFile,i=r.getContentAreaContainer().parentNode,a=i.appendChild(n.dom.parseHTML('<div class="sceditor-dnd-cover" style="display: none"><p>'+r._("Drop files here")+"</p></div>").firstChild),i.addEventListener("dragover",e),i.addEventListener("dragleave",d),i.addEventListener("dragend",d),i.addEventListener("drop",t),r.getBody().addEventListener("dragover",e),r.getBody().addEventListener("drop",d)},this.signalPasteHtml=function(e){if(!("handlePaste"in A)||A.handlePaste){var t=document.createElement("div");t.innerHTML=e.val;for(var n=t.querySelectorAll("img"),r=0;r<n.length;r++){var i=n[r];if(u.test(i.src)){var a=g(i.src);a&&l(a)?o(a,f(i)):i.parentNode.removeChild(i)}}e.val=t.innerHTML}}}function d(){a.style.display="none",i.className=i.className.replace(/(^| )dnd( |$)/g,"")}function l(e){return!("application/x-moz-file"!==e.type&&A.allowedTypes&&A.allowedTypes.indexOf(e.type)<0)&&(!A.isAllowed||A.isAllowed(e))}function f(e){var n=document.createElement("img");function t(e){var t=r.getBody().ownerDocument.getElementById(n.id);t&&("string"==typeof e&&t.insertAdjacentHTML("afterend",e),t.parentNode.removeChild(t))}return n.src=v,n.className="sceditor-ignore",n.id="sce-dragdrop-"+s++,function(){return e?e.parentNode.replaceChild(n,e):r.wysiwygEditorInsertHtml(n.outerHTML),{insert:function(e){t(e)},cancel:t}}}function e(e){for(var t=e.dataTransfer,n=t.files.length||!t.items?t.files:t.items,r=0;r<n.length;r++)if("string"===n[r].kind)return;"none"===a.style.display&&(a.style.display="block",i.className+=" dnd"),e.preventDefault()}function t(e){var t=e.dataTransfer,n=t.files.length||!t.items?t.files:t.items;d();for(var r=0;r<n.length;r++){if("string"===n[r].kind)return;l(n[r])&&o(n[r],f())}e.preventDefault()}}}(sceditor);

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(i){"use strict";i.plugins.format=function(){var n,a,c={p:"Paragraph",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",address:"Address",pre:"Preformatted Text"};this.init=function(){var e=this.opts,t=e.paragraphformat;e.format&&"bbcode"===e.format||(t&&(t.tags&&(c=t.tags),t.excludeTags&&t.excludeTags.forEach(function(e){delete c[e]})),this.commands.format||(this.commands.format={exec:a,txtExec:a,tooltip:"Format Paragraph"}),e.toolbar===i.defaultOptions.toolbar&&(e.toolbar=e.toolbar.replace(",color,",",color,format,")))},n=function(e,t){e.sourceMode()?e.insert("<"+t+">","</"+t+">"):e.execCommand("formatblock","<"+t+">")},a=function(e){var o=this,r=document.createElement("div");i.utils.each(c,function(t,a){var e=document.createElement("a");e.className="sceditor-option",e.textContent=a.name||a,e.addEventListener("click",function(e){o.closeDropDown(!0),a.exec?a.exec(o):n(o,t),e.preventDefault()}),r.appendChild(e)}),o.createDropDown(e,"format",r)}}}(sceditor);

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(t){"use strict";var i=t.utils.extend;t.plugins.plaintext=function(){var e=!0;this.init=function(){var t=this.commands,n=this.opts;n&&n.plaintext&&n.plaintext.addButton&&(e=n.plaintext.enabled,t.pastetext=i(t.pastetext||{},{state:function(){return e?1:0},exec:function(){e=!e}}))},this.signalPasteRaw=function(t){if(e){if(t.html&&!t.text){var n=document.createElement("div");n.innerHTML=t.html,t.text=n.innerText}t.html=null}}}}(sceditor);

View File

@ -0,0 +1,2 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(e){"use strict";sceditor.plugins.undo=function(){var r,o,e=this,u=0,a=50,n=[],c=[],s=!1,l=function(e){s=!0,o=e.value,r.sourceMode(e.sourceMode),r.val(e.value,!1),r.focus(),e.sourceMode?r.sourceEditorCaret(e.caret):r.getRangeHelper().restoreRange(),s=!1};e.init=function(){a=(r=this).undoLimit||a,r.addShortcut("ctrl+z",e.undo),r.addShortcut("ctrl+shift+z",e.redo),r.addShortcut("ctrl+y",e.redo)},e.undo=function(){var e=c.pop(),t=r.val(null,!1);return e&&!n.length&&t===e.value&&(e=c.pop()),e&&(n.length||n.push({caret:r.sourceEditorCaret(),sourceMode:r.sourceMode(),value:t}),n.push(e),l(e)),!1},e.redo=function(){var e=n.pop();return c.length||(c.push(e),e=n.pop()),e&&(c.push(e),l(e)),!1},e.signalReady=function(){var e=r.val(null,!1);o=e,c.push({caret:this.sourceEditorCaret(),sourceMode:this.sourceMode(),value:e})},e.signalValuechangedEvent=function(e){var t=e.detail.rawValue;0<a&&c.length>a&&c.shift(),!s&&o&&o!==t&&(n.length=0,(u+=function(e,t){var r,o,u,a,n=e.length,c=t.length,s=Math.max(n,c);for(r=0;r<s&&e.charAt(r)===t.charAt(r);r++);for(u=n<c?c-n:0,a=c<n?n-c:0,o=s-1;0<=o&&e.charAt(o-u)===t.charAt(o-a);o--);return o-r+1}(o,t))<20||u<50&&!/\s$/g.test(e.rawValue)||(c.push({caret:r.sourceEditorCaret(),sourceMode:r.sourceMode(),value:t}),u=0,o=t))}}}();

View File

@ -0,0 +1,3 @@
/* SCEditor v2.1.3 | (C) 2017, Sam Clarke | sceditor.com/license */
!function(t,r){"use strict";var e=t.plugins;function n(c){if(c._scePatched)return c;var t=function(){for(var t=[],e=0;e<arguments.length;e++){var n=arguments[e];n&&n.nodeType?t.push(r(n)):t.push(n)}return c.apply(this,t)};return t._scePatched=!0,t}function c(t){if(t._scePatched)return t;var e=function(){return r(t.apply(this,arguments))};return e._scePatched=!0,e}var o=t.command.set;if(t.command.set=function(t,e){return e&&"function"==typeof e.exec&&(e.exec=n(e.exec)),e&&"function"==typeof e.txtExec&&(e.txtExec=n(e.txtExec)),o.call(this,t,e)},e.bbcode){var a=e.bbcode.bbcode.set;e.bbcode.bbcode.set=function(t,e){return e&&"function"==typeof e.format&&(e.format=n(e.format)),a.call(this,t,e)}}var i=t.create;t.create=function(t,e){if(i.call(this,t,e),t&&t._sceditor){var n=t._sceditor;n.getBody=c(n.getBody),n.getContentAreaContainer=c(n.getContentAreaContainer)}}}(sceditor,jQuery);

3
admin/res/sceditor/sceditor.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
/*! SCEditor | (C) 2011-2013, Sam Clarke | sceditor.com/license */body,code:before,html,p,table{margin:0;padding:0;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;color:#111;line-height:1.25;overflow:visible}html{height:100%}.ios{overflow:auto;-webkit-overflow-scrolling:touch}.ios body{position:relative;overflow:auto}body{min-height:100%;word-wrap:break-word}body.placeholder::before{content:attr(placeholder);color:#555;font-style:italic}ol,ul{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}table,td{border:1px dotted #000;empty-cells:show}table td{min-width:5px}code{display:block;background:#f1f1f1;white-space:pre;padding:1em;text-align:left;margin:.25em 0;direction:ltr}blockquote{background:#fff7d9;margin:.25em 0;border-left:.3em solid #f4e59f;padding:.5em .5em .5em .75em}blockquote cite{font-weight:700;display:block;font-size:1em;margin:0 -.5em .25em -.75em;padding:0 .5em .15em .75em;border-bottom:1px solid #f4e59f}h1,h2,h3,h4,h5,h6{padding:0;margin:0}div,p{min-height:1.25em}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More