tinymce cloud, version plugin

This commit is contained in:
Diego Najar 2017-08-03 23:28:32 +02:00
parent 05c67fc473
commit 8362972b4f
23 changed files with 8843 additions and 12 deletions

View File

@ -111,7 +111,7 @@ define('CLI_STATUS', 'published');
define('CLI_USERNAME', 'admin');
// Filename
define('FILENAME', 'index.txt');
define('FILENAME', 'index.md');
// Database date format
define('DB_DATE_FORMAT', 'Y-m-d H:i:s');

View File

@ -26,6 +26,22 @@ class Theme {
return $Site->footer();
}
public static function rssUrl()
{
if (pluginEnabled('RSS')) {
return DOMAIN_BASE.'rss.xml';
}
return false;
}
public static function sitemapUrl()
{
if (pluginEnabled('Sitemap')) {
return DOMAIN_BASE.'sitemap.xml';
}
return false;
}
public static function siteUrl()
{
global $Site;

View File

@ -174,6 +174,12 @@ class Page {
return $date;
}
// Returns the date according to locale settings and format settings
public function dateModified()
{
return $this->getValue('dateModified');
}
// Returns the permalink
// (boolean) $absolute, TRUE returns the page link with the DOMAIN, FALSE without the DOMAIN
public function permalink($absolute=true)

View File

@ -68,15 +68,15 @@ class pluginPages extends Plugin {
$html .= '<ul>';
if(ORDER_BY==='position') {
foreach($pagesByParent[PARENT] as $parent) {
foreach($pagesByParent[PARENT] as $Parent) {
$html .= '<li class="parent">';
$html .= '<h3>';
$html .= $parent->title();
$html .= $Parent->title();
$html .= '</h3>';
if(!empty($pagesByParent[$parent->key()])) {
if(!empty($pagesByParent[$Parent->key()])) {
$html .= '<ul class="child">';
foreach($pagesByParent[$parent->key()] as $child) {
foreach($pagesByParent[$Parent->key()] as $child) {
$html .= '<li class="child">';
$html .= '<a class="child" href="'.$child->permalink().'">';
$html .= $child->title();

View File

@ -1,10 +1,10 @@
{
"author": "NextStepWebs",
"author": "Tinymce",
"email": "",
"website": "https://github.com/NextStepWebs/simplemde-markdown-editor",
"version": "1.11.2",
"version": "4",
"releaseDate": "2016-06-14",
"license": "MIT",
"compatible": "1.5.2",
"compatible": "2.0",
"notes": ""
}

View File

@ -0,0 +1,7 @@
{
"plugin-data":
{
"name": "TinyMCE",
"description": "Tinymce is an easy HTML editor, with many plugins and very customizable."
}
}

View File

@ -0,0 +1,10 @@
{
"author": "TinyMCE",
"email": "",
"website": "https://www.tinymce.com",
"version": "4.4.3",
"releaseDate": "2016-02-19",
"license": "GPL v2",
"compatible": "1.0,1.1,1.1.2,1.3,1.4,1.5.2",
"notes": ""
}

View File

@ -0,0 +1,56 @@
<?php
class pluginTinymce extends Plugin {
private $loadWhenController = array(
'new-post',
'new-page',
'edit-post',
'edit-page'
);
public function init()
{
$this->dbFields = array(
'plugins'=>'autoresize, fullscreen, pagebreak, link, textcolor, code, image, paste',
'toolbar'=>'bold italic underline strikethrough | alignleft aligncenter alignright | bullist numlist | styleselect | link forecolor backcolor removeformat image | pagebreak code fullscreen'
);
}
public function form()
{
global $Language;
$html = '<div>';
$html .= '<label>Tinymce plugins</label>';
$html .= '<input name="plugins" id="jsplugins" type="text" value="'.$this->getDbField('plugins').'">';
$html .= '</div>';
$html .= '<div>';
$html .= '<label>Tinymce toolbar</label>';
$html .= '<input name="toolbar" id="jstoolbar" type="text" value="'.$this->getDbField('toolbar').'">';
$html .= '</div>';
return $html;
}
public function adminHead()
{
global $layout;
if (in_array($layout['controller'], $this->loadWhenController)) {
return '<script src="https://cloud.tinymce.com/stable/tinymce.min.js"></script>';
}
return false;
}
public function adminBodyEnd()
{
global $layout;
if (in_array($layout['controller'], $this->loadWhenController)) {
return '<script>tinymce.init({ selector:"textarea" });</script>';
}
return false;
}
}

View File

@ -31,12 +31,11 @@ class pluginVersion extends Plugin {
$timeToCheck = Session::get('timeToCheck') + 10*60;
if( ($ADMIN_CONTROLLER=='dashboard') && ($timeToCheck<time()) ) {
$versions = $this->getVersion();
$versions = array('latest'=>'2.0');
Session::set('timeToCheck', time());
Session::set('latestVersion', $versions['latest']);
Session::set('stableVersion', $versions['stableVersion']);
}
if( version_compare(Session::get('latestVersion'), BLUDIT_VERSION, '>') ) {
if( version_compare(Session::get('stableVersion'), BLUDIT_VERSION, '>') ) {
$html = '<div id="plugin-version"><a href="https://www.bludit.com">New version available</a></div>';
} else {
if(defined('BLUDIT_PRO')) {
@ -56,7 +55,7 @@ class pluginVersion extends Plugin {
$json = json_decode($output, true);
if(empty($json)) {
return array('latest'=>'');
return false;
}
return $json;

View File

@ -0,0 +1,69 @@
body {
color: #333;
font-weight: 400;
}
.bl-list {
margin: 20px 0;
}
.bl-container-title {
padding: 7em 0;
}
.bl-container-main {
padding-bottom: 7em;
}
.bl-author img {
max-width: 50%;
border-radius: 150px;
}
.bl-author .name {
margin-top: 10px;
margin-bottom: 4px;
}
.bl-author .social a {
font-size: 0.9em;
}
.plugin-content ul {
list-style: none;
padding: 0 5px;
}
a.page-parent {
color: #000;
}
/*
Page and post content
------------------------------------------------
*/
.bl-page-post-content p {
margin-bottom: 10px;
}
.bl-page-post-content ul {
}
.bl-page-post-content h1,
.bl-page-post-content h2,
.bl-page-post-content h3,
.bl-page-post-content h4,
.bl-page-post-content h5,
.bl-page-post-content h6 {
margin: 0 0 20px 0;
}
.bl-page-post-content h1:not(:first-child),
.bl-page-post-content h2:not(:first-child),
.bl-page-post-content h3:not(:first-child),
.bl-page-post-content h4:not(:first-child),
.bl-page-post-content h5:not(:first-child),
.bl-page-post-content h6:not(:first-child) {
margin-top: 40px;
}

View File

@ -0,0 +1 @@
@keyframes fade-in{0%{opacity:0}100%{opacity:1}}@keyframes fade{10%{transform:scale(1, 1)}35%{transform:scale(1, 1.7)}40%{transform:scale(1, 1.7)}50%{opacity:1}60%{transform:scale(1, 1)}100%{transform:scale(1, 1);opacity:0}}[data-language] code,[class^="lang"] code,pre [data-language],pre [class^="lang"]{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";animation:50ms ease-in-out 2s forwards fade-in}[data-language] code.rainbow,[class^="lang"] code.rainbow,pre [data-language].rainbow,pre [class^="lang"].rainbow{animation-delay:0s}[data-language] code.loading,[class^="lang"] code.loading,pre [data-language].loading,pre [class^="lang"].loading{animation-play-state:paused}pre{position:relative}pre.loading .preloader div{animation-play-state:running}pre.loading .preloader div:nth-of-type(1){background:#0081f5;animation:fade 1.5s 300ms linear infinite}pre.loading .preloader div:nth-of-type(2){background:#5000f5;animation:fade 1.5s 438ms linear infinite}pre.loading .preloader div:nth-of-type(3){background:#9000f5;animation:fade 1.5s 577ms linear infinite}pre.loading .preloader div:nth-of-type(4){background:#f50419;animation:fade 1.5s 715ms linear infinite}pre.loading .preloader div:nth-of-type(5){background:#f57900;animation:fade 1.5s 853ms linear infinite}pre.loading .preloader div:nth-of-type(6){background:#f5e600;animation:fade 1.5s 992ms linear infinite}pre.loading .preloader div:nth-of-type(7){background:#00f50c;animation:fade 1.5s 1130ms linear infinite}pre .preloader{position:absolute;top:12px;left:10px}pre .preloader div{width:12px;height:12px;border-radius:4px;display:inline-block;margin-right:4px;opacity:0;animation-play-state:paused;animation-fill-mode:forwards}pre{border:1px solid #ccc;word-wrap:break-word;padding:6px 10px;line-height:19px;margin-bottom:20px}pre code{border:0;padding:0;margin:0;border-radius:0}code{border:1px solid #eaeaea;margin:0px 2px;padding:0px 5px;font-size:12px}pre,code{font-family:Consolas, 'Liberation Mono', Courier, monospace;color:#333;background:#f8f8f8;border-radius:3px}pre,pre code{font-size:13px}pre .comment{color:#998}pre .support{color:#0086B3}pre .tag,pre .tag-name{color:navy}pre .keyword,pre .css-property,pre .vendor-fix,pre .sass,pre .class,pre .id,pre .css-value,pre .entity.function,pre .storage.function{font-weight:bold}pre .css-property,pre .css-value,pre .vendor-fix,pre .support.namespace{color:#333}pre .constant.numeric,pre .keyword.unit,pre .hex-color{font-weight:normal;color:#099}pre .entity.class{color:#458}pre .entity.id,pre .entity.function{color:#900}pre .attribute,pre .variable{color:teal}pre .string,pre .support.value{font-weight:normal;color:#d14}pre .regexp{color:#009926}

File diff suppressed because it is too large Load Diff

76
bl-themes/klean/index.php Normal file
View File

@ -0,0 +1,76 @@
<!DOCTYPE html>
<head>
<?php include(THEME_DIR_PHP.'head.php') ?>
</head>
<body>
<header id="fh5co-header" role="banner">
<nav class="navbar navbar-default" role="navigation">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<!-- Logo
-->
<div class="navbar-header">
<a class="navbar-brand" href="<?php echo $Site->url() ?>"><?php echo $Site->title() ?></a>
</div>
<!-- Links
-->
<div id="fh5co-navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="<?php echo $Site->url() ?>"><span>Home <span class="border"></span></span></a></li>
<li><a href="<?php echo Theme::rssUrl() ?>"><span>RSS <span class="border"></span></span></a></li>
<li><a href="<?php echo Theme::sitemapUrl() ?>"><span>Sitemap <span class="border"></span></span></a></li>
</ul>
</div>
</div>
</div>
</div>
</nav>
</header>
<div id="fh5co-main">
<!-- Main
-->
<?php
if ($Url->whereAmI()=='page') {
include(THEME_DIR_PHP.'page.php');
} else {
include(THEME_DIR_PHP.'home.php');
}
?>
</div>
<!-- Footer
-->
<footer id="fh5co-footer">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1 text-center">
<p><?php echo $Site->footer() ?> <br> Diego Najar - <a href="https://www.linkedin.com/in/diegonajar?locale=en_US">Linkedin</a></p>
</div>
</div>
</div>
</footer>
<!-- Javascript
-->
<?php
Theme::jquery();
Theme::javascript('jquery.waypoints.min.js');
Theme::javascript('main.js');
?>
<!-- Load plugins
- Hook: Site body end
-->
<?php
Theme::plugins('siteBodyEnd');
?>
</body>
</html>

5
bl-themes/klean/init.php Normal file
View File

@ -0,0 +1,5 @@
<?php
define('PARENT_PAGES_LINK', false);
?>

File diff suppressed because one or more lines are too long

131
bl-themes/klean/js/main.js Normal file
View File

@ -0,0 +1,131 @@
;(function () {
'use strict';
// iPad and iPod detection
var isiPad = function(){
return (navigator.platform.indexOf("iPad") != -1);
};
var isiPhone = function(){
return (
(navigator.platform.indexOf("iPhone") != -1) ||
(navigator.platform.indexOf("iPod") != -1)
);
};
// Burger Menu
var burgerMenu = function() {
$('body').on('click', '.js-fh5co-nav-toggle', function(){
if ( $('#fh5co-navbar').is(':visible') ) {
$(this).removeClass('active');
} else {
$(this).addClass('active');
}
});
};
// Animate Projects
var animateBox = function() {
if ( $('.animate-box').length > 0 ) {
$('.animate-box').waypoint( function( direction ) {
if( direction === 'down' && !$(this.element).hasClass('animated') ) {
$(this.element).addClass('fadeIn animated');
}
} , { offset: '80%' } );
}
};
// Animate Leadership
var animateTeam = function() {
if ( $('#fh5co-team').length > 0 ) {
$('#fh5co-team .to-animate').each(function( k ) {
var el = $(this);
setTimeout ( function () {
console.log('yaya');
el.addClass('fadeInUp animated');
}, k * 200, 'easeInOutExpo' );
});
}
};
var teamWayPoint = function() {
if ( $('#fh5co-team').length > 0 ) {
$('#fh5co-team').waypoint( function( direction ) {
if( direction === 'down' && !$(this.element).hasClass('animated') ) {
setTimeout(animateTeam, 200);
$(this.element).addClass('animated');
}
} , { offset: '80%' } );
}
};
// Animate Feature
var animateFeatureIcons = function() {
if ( $('#fh5co-services').length > 0 ) {
$('#fh5co-services .to-animate').each(function( k ) {
var el = $(this);
setTimeout ( function () {
el.addClass('bounceIn animated');
}, k * 200, 'easeInOutExpo' );
});
}
};
var featureIconsWayPoint = function() {
if ( $('#fh5co-services').length > 0 ) {
$('#fh5co-services').waypoint( function( direction ) {
if( direction === 'down' && !$(this.element).hasClass('animated') ) {
setTimeout(animateFeatureIcons, 200);
$(this.element).addClass('animated');
}
} , { offset: '80%' } );
}
};
$(function(){
burgerMenu();
animateBox();
teamWayPoint();
featureIconsWayPoint();
});
}());

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,7 @@
{
"theme-data":
{
"name": "Klean",
"description": "Based on the theme Clean, minimalist, fast, and klean."
}
}

View File

@ -0,0 +1,7 @@
{
"theme-data":
{
"name": "Klean",
"description": "Basado en el tema Clean, minimalista, rapido y limpio."
}
}

View File

@ -0,0 +1,10 @@
{
"author": "FREEHTML5.co",
"email": "",
"website": "https://freehtml5.co/",
"version": "16.10.13",
"releaseDate": "2016-10-13",
"license": "",
"compatible": "1.5.2",
"notes": "Responsive theme for Bludit adapted by Diego."
}

View File

@ -0,0 +1,27 @@
<?php
echo Theme::charset('utf-8');
echo Theme::viewport('width=device-width, initial-scale=1');
echo '<meta http-equiv="X-UA-Compatible" content="IE=edge">';
echo '<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,400i,700" rel="stylesheet">';
echo Theme::headTitle();
echo Theme::headDescription();
echo Theme::favicon('img/favicon.png');
echo Theme::fontAwesome();
echo Theme::css('css/style.css');
echo Theme::css('css/bludit.css');
echo Theme::css('css/rainbow-github.css');
echo '<!--[if lt IE 9]>';
echo Theme::js('js/respond.min.js');
echo '<![endif]-->';
echo Theme::js('js/rainbow-custom.min.js');
// Load plugins with the hook siteHead
Theme::plugins('siteHead');
?>

View File

@ -0,0 +1,32 @@
<?php
// PRINT PAGES and SUB-PAGES
// ------------------------------------------------------
foreach ($pagesByParent[PARENT] as $Parent) {
echo '<div class="bl-list">';
echo '<div class="container">';
echo '<div class="row">';
echo '<div class="col-md-12 text-center">';
if (PARENT_PAGES_LINK) {
echo '<h1><a class="page-parent" href="'.$Parent->permalink().'">'.$Parent->title().'</a></h1>';
} else {
echo '<h1>'.$Parent->title().'</h1>';
}
if (!empty($pagesByParent[$Parent->key()])) {
echo '<ul class="list-unstyled">';
foreach($pagesByParent[$Parent->key()] as $Child) {
echo '<li><h4><a href="'.$Child->permalink().'">'.$Child->title().'</a></h4></li>';
}
echo '</ul>';
}
echo '</div>';
echo '</div>';
echo '</div>';
echo '</div>';
}
?>

View File

@ -0,0 +1,105 @@
<!-- Page title and description
-->
<div class="bl-container-title text-center">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<h1 class="title"><?php echo $Page->title() ?></h1>
<p class="description"><?php echo $Page->description() ?></p>
<p class="date">Published <?php echo $Page->date() ?></p>
<?php if ($Page->dateModified()) { ?>
<p class="dateModified">Updated: <?php echo $Page->dateModified() ?></p>
<?php } ?>
</div>
</div>
</div>
</div>
<!-- Page content and author
-->
<div class="bl-container-main">
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="row">
<!-- Author
-->
<div class="col-md-3 col-md-push-9">
<div class="bl-author text-center">
<?php
$User = $Page->user();
$author = $User->username();
if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) ) {
$author = $User->firstName().' '.$User->lastName();
}
?>
<!-- Author profile
-->
<img src="<?php echo $User->profilePicture() ?>" alt="">
<!-- Author name
-->
<h4 class="name"><?php echo $author ?></h4>
<!-- Social networks
-->
<?php
if( Text::isNotEmpty( $User->twitter()) )
echo '<div class="social"><i class="icon-twitter"></i> <a href="'.$User->twitter().'">Twitter</a></div>';
if( Text::isNotEmpty( $User->facebook()) )
echo '<div class="social"><i class="icon-facebook"></i> <a href="'.$User->facebook().'">Facebook</a></div>';
if( Text::isNotEmpty( $User->googleplus()) )
echo '<div class="social"><i class="icon-google"></i> <a href="'.$User->googleplus().'">Google+</a></div>';
if( Text::isNotEmpty( $User->instagram()) )
echo '<div class="social"><i class="icon-instagram"></i> <a href="'.$User->instagram().'">Instagram</a></div>';
?>
</div>
</div>
<!-- Page content
-->
<div class="col-md-9 col-md-pull-3">
<!-- Load plugins
- Hook: Page Begin
-->
<?php Theme::plugins('pageBegin') ?>
<!-- Cover Image
-->
<?php
if( $Page->coverImage() ) {
echo '<div class="bl-cover-image">';
echo '<img src="'.$Page->coverImage().'" alt="Cover Image">';
echo '</div>';
}
?>
<!-- Page content
- The flag TRUE is to get the full content.
- This content is Markdown parsed.
-->
<div class="bl-page-post-content">
<?php echo $Page->content(true) ?>
</div>
<!-- Load plugins
- Hook: Page End
-->
<?php Theme::plugins('pageEnd') ?>
</div>
</div>
</div>
</div>
</div>
</div>