From d41fe5c95d70a367c382ccede252cfdc6fd2969d Mon Sep 17 00:00:00 2001
From: trendschau <trendschau@gmail.com>
Date: Tue, 7 Apr 2020 08:20:22 +0200
Subject: [PATCH] Version 1.3.4: Media Library

---
 media/markdown.png                      | Bin 0 -> 1073 bytes
 system/Models/ProcessAssets.php         |  21 +++++++++++++++---
 system/Models/ProcessImage.php          |  10 +++++++--
 system/Settings.php                     |   5 ++++-
 system/author/css/style.css             |   6 ++++-
 system/author/layouts/layout.twig       |   8 +++----
 system/author/layouts/layoutAuth.twig   |   4 ++--
 system/author/layouts/layoutBlank.twig  |   2 +-
 system/author/layouts/layoutBlox.twig   |  28 ++++++++++++------------
 system/author/layouts/layoutEditor.twig |  28 ++++++++++++------------
 10 files changed, 70 insertions(+), 42 deletions(-)
 create mode 100644 media/markdown.png

diff --git a/media/markdown.png b/media/markdown.png
new file mode 100644
index 0000000000000000000000000000000000000000..9470f0878f45a9a2cff72ff6fcbfd550daac338f
GIT binary patch
literal 1073
zcmeAS@N?(olHy`uVBq!ia0vp^7l62dgBeKrei7dYq`CrpLR^9LAOXTm9Qr_~=#~We
z1v9Yyd~!_M(vP`aV%n=e&u8XrO#7C6X^sIu&jEYRlioIG4zDN;Y<W1jNVg&+{JnGk
z8wLhuO-~ockP61PcSG~mSW2`!%t}j3llbv%|DK00Pg!nE`M&;}Yvj7u7lbPgo9*z;
zE`KxgPSx?)?B@L2cDvQ~yesaOzqVuck9WKc*^x}y7mK&4lpU+z9jUbY;rv+LnX!xu
zLOj_+G#Ph9IPGRQo9DG4kF)ymwO*+wVcBbXZ$Ey>vGZ1xiA})M+sipGn)>Uzi2f0<
zawwCo6Iht@KcDlaZhVK)8&i({E)z$|DM(0V1CP=1WgNGz$TXKfi%1FB+1GIOw2{K<
zEe~UNCs`@1p7tQ}Wr~-A^nuNdnT<KG_?yH|$g;6H@;%{WZeGA%)ZXZLf%)bEc^2IX
zzJDDrFzq~iK;cBA1Y5bl7l%HBDXW(8BuPlH<O%?VGnyrU8pVzn7;yYjXankFGvs0R
zW=;uabCd@Oeo}b7T@s>Hg>lot1CyA3PIru9OTBQX$!t1ftLm<(NsJ4xeXssydZNK;
z-x*E$1uTbduuC~}v-nFqOVp1#&b9t?qQKz?d`=Q8EVW)qn%V>HzT?QjoM@{3Y^Lr<
zkQ|Sb2FF$}LI0&~{y^7+3mkHc@VWQhN34S(NkYbvgMHz}>g$)Y6_`2_3)mE8S|09R
zps3UU^39(Ghd#bj;5#APRwVmS;n?rL3C9@|-|#tEbbRFFFY^(2_D-RtS>pYNgySrR
zJUmVo8aDTM%2GhyZfQRB_-w*)W{_~AK-<HEeLRO|IBM{5b(OP!bmU=f{$SVf@f(Y^
zT}NVqKv$zgzW;{D%@^JobG&b^`IrV|14C^g&>D~uj>m>}3`u)z5BBjNYL_d2!M{z6
zL$-dyR)?PL);Ee2j@_2cu@!jymT#LJ$9|tX2dA+b-s9P3)&VqTtK*9u&1<=n_DJTW
z3Ou%r1_pVB@r_Fg$7UZ4V*{!xllmWGA>$<XB$BODx7kPofhJj8D){O&<+62&(avN?
z>rB}@w|>6NxNG+0+CLx_l+`Z(`1%xw{maT4ewZCqz9($evVZC;Q_hz$DF^?SO@Dvz
u{g1@k-QQ9Trt4aK*d^zBrvLiaKb#L%vFaWBxB4$A<9oXLxvX<aXaWGf8Ij5W

literal 0
HcmV?d00001

diff --git a/system/Models/ProcessAssets.php b/system/Models/ProcessAssets.php
index aaf66c4..98bed4d 100644
--- a/system/Models/ProcessAssets.php
+++ b/system/Models/ProcessAssets.php
@@ -60,9 +60,9 @@ class ProcessAssets
 
 		foreach($folders as $folder)
 		{
-			if(!file_exists($folder))
+			if(!file_exists($folder) && !is_dir( $folder ))
 			{
-				if(!mkdir($folder, 0774, true))
+				if(!mkdir($folder, 0755, true))
 				{
 					return false;
 				}
@@ -75,14 +75,29 @@ class ProcessAssets
 					$this->generateThumbs();
 				}
 			}
-			elseif(!is_writeable($folder))
+			elseif(!is_writeable($folder) OR !is_readable($folder))
 			{
 				return false;
 			} 
+
+			# check if thumb-folder is empty, then generate thumbs from live folder
+			if($folder == $this->thumbFolder && $this->is_dir_empty($folder))
+			{				
+				# cleanup old systems
+				$this->cleanupLiveFolder();
+
+				# generate thumbnails from live folder
+				$this->generateThumbs();
+			}
 		}
 		return true;
 	}
 
+	public function is_dir_empty($dir) 
+	{
+		return (count(scandir($dir)) == 2);
+	}
+
 	public function setFileName($originalname, $type, $overwrite = null)
 	{
 		$pathinfo			= pathinfo($originalname);
diff --git a/system/Models/ProcessImage.php b/system/Models/ProcessImage.php
index 82a21bd..f3c4b0a 100644
--- a/system/Models/ProcessImage.php
+++ b/system/Models/ProcessImage.php
@@ -329,9 +329,10 @@ class ProcessImage extends ProcessAssets
 		{
 			if (!in_array($name, array(".","..")))
 			{
-				$this->generateThumbFromImageFile($name);
+				$result = $this->generateThumbFromImageFile($name);
 			}
 		}
+		return $result;
 	}
 
 	public function generateThumbFromImageFile($filename)
@@ -354,7 +355,12 @@ class ProcessImage extends ProcessAssets
 
 		$thumb 			= $this->imageResize($image, $originalSize, ['thumbs' => $thumbSize ], $this->extension);
 
-		$this->saveImage($this->thumbFolder, $thumb['thumbs'], $this->filename, $this->extension);
+		$saveImage 		= $this->saveImage($this->thumbFolder, $thumb['thumbs'], $this->filename, $this->extension);
+		if($saveImage)
+		{
+			return true;
+		}
+		return false;
 	}
 
 	public function generateSizesFromImageFile($filename, $image)
diff --git a/system/Settings.php b/system/Settings.php
index 6e469ae..7dde0a9 100644
--- a/system/Settings.php
+++ b/system/Settings.php
@@ -16,6 +16,9 @@ class Settings
 			$settings 			= array_merge($defaultSettings, $userSettings);
 		}
 
+		# no individual image sizes are allowed sind 1.3.4
+		$settings['images']	= $defaultSettings['images'];
+
 		# if there is no theme set
 		if(!isset($settings['theme']))
 		{
@@ -78,7 +81,7 @@ class Settings
 			'contentFolder'							=> 'content',
 			'cache'									=> true,
 			'cachePath'								=> $rootPath . 'cache',
-			'version'								=> '1.3.3',
+			'version'								=> '1.3.4',
 			'setup'									=> true,
 			'welcome'								=> true,
 			'images'								=> ['live' => ['width' => 820], 'thumbs' => ['width' => 250, 'height' => 150]],
diff --git a/system/author/css/style.css b/system/author/css/style.css
index d951ff6..6197987 100644
--- a/system/author/css/style.css
+++ b/system/author/css/style.css
@@ -1727,6 +1727,7 @@ label .help, .label .help{
 }
 .blox-editor input.mdcontent.h2,.blox-editor input.mdcontent.h3,.blox-editor input.mdcontent.h4,.blox-editor input.mdcontent.h5,.blox-editor input.mdcontent.h6{
 	padding-left: 35px;
+	height: auto;
 }
 .blox-editor input.mdcontent.h2{
 	font-size: 1.6em;
@@ -1973,7 +1974,8 @@ button.format-item.close:hover{
 ************************/
 
 /* format menu */
-.inlineFormatBar {  
+.inlineFormatBar { 
+	box-sizing:content-box; 
 	height: 30px;  
 	padding: 5px 10px;  
 	background: #333;  
@@ -2403,10 +2405,12 @@ hr{
 }
 .blox li.h1{
 	font-weight: 700;
+	height:auto;
 }
 .blox li.h2,.blox li.h3,.blox li.h4,.blox li.h5,.blox li.h6{
 	font-weight: 400;
 	padding-left: 25px;	
+	height:auto;
 }
 .blox a, .blox a:link, .blox a:visited,
 footer a, footer a:link, footer a:visited
diff --git a/system/author/layouts/layout.twig b/system/author/layouts/layout.twig
index 67650ad..e96b3ed 100644
--- a/system/author/layouts/layout.twig
+++ b/system/author/layouts/layout.twig
@@ -17,8 +17,8 @@
 		<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
 		
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css?20200226" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200226" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css?20200405" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
 	</head>
 	<body>
@@ -56,7 +56,7 @@
 			</article>
 			<footer></footer>
 		</div>
-		<script src="{{ base_url }}/system/author/js/color-picker.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/author.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/color-picker.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
 	</body>
 </html>
\ No newline at end of file
diff --git a/system/author/layouts/layoutAuth.twig b/system/author/layouts/layoutAuth.twig
index cf38bbe..e0abd9e 100644
--- a/system/author/layouts/layoutAuth.twig
+++ b/system/author/layouts/layoutAuth.twig
@@ -18,7 +18,7 @@
 		<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
 				
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200226" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
 	</head>
 	<body>
@@ -54,6 +54,6 @@
 			{% block content %}{% endblock %}
 
 		</div>
-		<script src="{{ base_url }}/system/author/js/auth.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/auth.js?20200405"></script>
 	</body>
 </html>
\ No newline at end of file
diff --git a/system/author/layouts/layoutBlank.twig b/system/author/layouts/layoutBlank.twig
index 4ef518c..72a8d8c 100644
--- a/system/author/layouts/layoutBlank.twig
+++ b/system/author/layouts/layoutBlank.twig
@@ -17,7 +17,7 @@
 		<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
 
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200226" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
 	</head>
 	<body>
 		<svg style="position: absolute; width: 0; height: 0; overflow: hidden" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
diff --git a/system/author/layouts/layoutBlox.twig b/system/author/layouts/layoutBlox.twig
index ab88393..c7eebfb 100644
--- a/system/author/layouts/layoutBlox.twig
+++ b/system/author/layouts/layoutBlox.twig
@@ -18,7 +18,7 @@
 		
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200226" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
 
 		{{ assets.renderCSS() }}
@@ -196,12 +196,12 @@
 			const myaxios = axios.create();
 			myaxios.defaults.baseURL =  "{{ base_url }}";
 		</script>
-		<script src="{{ base_url }}/system/author/js/vue.min.js?20200226"></script>
-    	<script src="{{ base_url }}/system/author/js/vue-i18n.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/autosize.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/author.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-blox-config.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/vue.min.js?20200405"></script>
+    	<script src="{{ base_url }}/system/author/js/vue-i18n.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/autosize.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-blox-config.js?20200405"></script>
 		<script>
 			let formatConfig = {{ settings.formats|json_encode() }};
       		let language = {{ settings.language|json_encode() }};
@@ -211,13 +211,13 @@
 
 		{{ assets.renderEditorJS() }}
 
-		<script src="{{ base_url }}/system/author/js/vue-blox.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-posts.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/sortable.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-navi.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-meta.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/lazy-video.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/vue-blox.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-posts.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/sortable.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-navi.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-meta.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/lazy-video.js?20200405"></script>
 
 		{{ assets.renderJS() }}
 
diff --git a/system/author/layouts/layoutEditor.twig b/system/author/layouts/layoutEditor.twig
index 0cb91a4..bce3438 100644
--- a/system/author/layouts/layoutEditor.twig
+++ b/system/author/layouts/layoutEditor.twig
@@ -18,7 +18,7 @@
 
 		
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
-		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200226" />
+		<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
 		<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
 
 		{{ assets.renderCSS() }}
@@ -83,30 +83,30 @@
 			</article>
 			<footer></footer>
 		</div>
-		<script src="{{ base_url }}/system/author/js/axios.min.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/axios.min.js?20200405"></script>
 		<script>
 			const myaxios = axios.create();
 			myaxios.defaults.baseURL =  "{{ base_url }}";
 		</script>		
-		<script src="{{ base_url }}/system/author/js/vue.min.js?20200226"></script>
-    	<script src="{{ base_url }}/system/author/js/vue-i18n.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/autosize.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/sortable.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/author.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/vue.min.js?20200405"></script>
+    	<script src="{{ base_url }}/system/author/js/vue-i18n.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/autosize.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/sortable.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
 
 	    <script>
-    	  let language = {{ settings.language|json_encode() }};
-	      let vuejsLabels = {{ settings.vuejsLabels|json_encode() }};
+    	  	let language = {{ settings.language|json_encode() }};
+	      	let vuejsLabels = {{ settings.vuejsLabels|json_encode() }};
       		let navigation = {{ navigation|json_encode() }};
 		</script>
     
 		{{ assets.renderEditorJS() }}		
 		
-		<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200226"></script>		
-		<script src="{{ base_url }}/system/author/js/vue-editor.js?20200226"></script>
-		<script src="{{ base_url }}/system/author/js/vue-meta.js?20200226"></script>		
-		<script src="{{ base_url }}/system/author/js/vue-navi.js?20200226"></script>
+		<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200405"></script>		
+		<script src="{{ base_url }}/system/author/js/vue-editor.js?20200405"></script>
+		<script src="{{ base_url }}/system/author/js/vue-meta.js?20200405"></script>		
+		<script src="{{ base_url }}/system/author/js/vue-navi.js?20200405"></script>
 
 		{{ assets.renderJS() }}