diff --git a/cache/lastCache.txt b/cache/lastCache.txt index d705a7f..b0d9d57 100644 --- a/cache/lastCache.txt +++ b/cache/lastCache.txt @@ -1 +1 @@ -1541856493 \ No newline at end of file +1543829895 \ No newline at end of file diff --git a/content/00-Welcome/00-Setup.md b/content/01-Welcome/00-Setup.md similarity index 100% rename from content/00-Welcome/00-Setup.md rename to content/01-Welcome/00-Setup.md diff --git a/content/00-Welcome/02-Write-Content.md b/content/01-Welcome/01-Write-Content.md similarity index 100% rename from content/00-Welcome/02-Write-Content.md rename to content/01-Welcome/01-Write-Content.md diff --git a/content/00-Welcome/03-Get-Help.md b/content/01-Welcome/02-Get-Help.md similarity index 100% rename from content/00-Welcome/03-Get-Help.md rename to content/01-Welcome/02-Get-Help.md diff --git a/content/00-Welcome/index.md b/content/01-Welcome/index.md similarity index 100% rename from content/00-Welcome/index.md rename to content/01-Welcome/index.md diff --git a/content/index.md b/content/index.md index 9a40933..072647b 100644 --- a/content/index.md +++ b/content/index.md @@ -2,4 +2,5 @@ **MODERN WEB PUBLISHING FOR WRITERS** -*Typemill is a user-friendly and lightweight open source CMS for publishing text-works like prosa, lyrics, manuals, documentations, studies and more. Just download and start.* \ No newline at end of file +*Typemill is a user-friendly and lightweight open source CMS for publishing text-works like prosa, lyrics, manuals, documentations, studies and more. Just download and start.* + diff --git a/media/original/5bf950ebf2abc-original.png b/media/original/5bf950ebf2abc-original.png new file mode 100644 index 0000000..31e1d08 Binary files /dev/null and b/media/original/5bf950ebf2abc-original.png differ diff --git a/readme.md b/readme.md index 45b49c5..fc6bc2d 100644 --- a/readme.md +++ b/readme.md @@ -45,7 +45,18 @@ The GitHub-version has no vendor-folder, so you have to update and include all l If you did not use composer before, please go to the [composer website](http://getcomposer.org) and start to learn. -To run TYPEMILL on a **live** system, simply upload the files to your server. +To run TYPEMILL on a **live** system, simply upload the files to your server + +## Make Folders Writable. + + Make sure that the following folders and all their content are writable (permission 774 recursively): + +* cache +* content +* media +* settings + +You can use your ftp-software for that. ## Setup diff --git a/system/Controllers/ContentApiController.php b/system/Controllers/ContentApiController.php index 1ebbd79..9c075b3 100644 --- a/system/Controllers/ContentApiController.php +++ b/system/Controllers/ContentApiController.php @@ -6,6 +6,7 @@ use Slim\Http\Request; use Slim\Http\Response; use Typemill\Models\Folder; use Typemill\Models\Write; +use Typemill\Models\ProcessImage; use Typemill\Extensions\ParsedownExtension; class ContentApiController extends ContentController @@ -755,6 +756,7 @@ class ContentApiController extends ContentController /* get params from call */ $this->params = $request->getParams(); $this->uri = $request->getUri(); + $errors = false; # set structure if(!$this->setStructure($draft = true)){ return $response->withJson(array('data' => false, 'errors' => $this->errors), 404); } @@ -792,6 +794,25 @@ class ContentApiController extends ContentController # check if id exists if(!isset($this->content[$this->params['block_id']])){ return $response->withJson(array('data' => false, 'errors' => 'The ID of the content-block is wrong.'), 404); } + # check if block is image + $contentBlock = $this->content[$this->params['block_id']]; + $contentBlockStart = substr($contentBlock, 0, 2); + if($contentBlockStart == '[!' OR $contentBlockStart == '![') + { + # extract image path + preg_match("/\((.*?)\)/",$contentBlock,$matches); + if(isset($matches[1])) + { + $imageBaseName = explode('-', $matches[1]); + $imageBaseName = str_replace('media/live/', '', $imageBaseName[0]); + $processImage = new ProcessImage(); + if(!$processImage->deleteImage($imageBaseName)) + { + $errors = 'Could not delete some of the images, please check manually'; + } + } + } + # delete the block unset($this->content[$this->params['block_id']]); $this->content = array_values($this->content); @@ -821,6 +842,41 @@ class ContentApiController extends ContentController return $response->withJson(['errors' => ['message' => 'Could not write to file. Please check if the file is writable']], 404); } - return $response->withJson(array('markdown' => $pageMarkdown, 'errors' => false)); + return $response->withJson(array('markdown' => $pageMarkdown, 'errors' => $errors)); + } + + public function createImage(Request $request, Response $response, $args) + { + /* get params from call */ + $this->params = $request->getParams(); + $this->uri = $request->getUri(); + + $imageProcessor = new ProcessImage(); + + if($imageProcessor->createImage($this->params['image'], $this->settings['images'], $name = false)) + { + return $response->withJson(array('errors' => false)); + } + + return $response->withJson(array('errors' => 'could not store image to temporary folder')); + } + + public function publishImage(Request $request, Response $response, $args) + { + $params = $request->getParsedBody(); + + $imageProcessor = new ProcessImage(); + + $imageUrl = $imageProcessor->publishImage($this->settings['images'], $name = false); + if($imageUrl) + { + $params['markdown'] = str_replace('imgplchldr', $imageUrl, $params['markdown']); + + $request = $request->withParsedBody($params); + + return $this->updateBlock($request, $response, $args); + } + + return $response->withJson(array('errors' => 'could not store image to temporary folder')); } } \ No newline at end of file diff --git a/system/Controllers/ContentBackendController.php b/system/Controllers/ContentBackendController.php index 9133368..55d713f 100644 --- a/system/Controllers/ContentBackendController.php +++ b/system/Controllers/ContentBackendController.php @@ -23,7 +23,7 @@ class ContentBackendController extends ContentController # get params from call $this->uri = $request->getUri(); $this->params = isset($args['params']) ? ['url' => $this->uri->getBasePath() . '/' . $args['params']] : ['url' => $this->uri->getBasePath()]; - + # set structure if(!$this->setStructure($draft = true)){ return $this->renderIntern404($response, array( 'navigation' => true, 'content' => $this->errors )); } @@ -71,7 +71,7 @@ class ContentBackendController extends ContentController $content = trim($contentParts[1]); } } - + return $this->render($response, 'editor/editor-raw.twig', array('navigation' => $this->structure, 'title' => $title, 'content' => $content, 'item' => $this->item, 'settings' => $this->settings )); } @@ -85,6 +85,7 @@ class ContentBackendController extends ContentController public function showBlox(Request $request, Response $response, $args) { + # get params from call $this->uri = $request->getUri(); $this->params = isset($args['params']) ? ['url' => $this->uri->getBasePath() . '/' . $args['params']] : ['url' => $this->uri->getBasePath()]; @@ -100,7 +101,7 @@ class ContentBackendController extends ContentController # set the status for published and drafted $this->setPublishStatus(); - + # set path $this->setItemPath($this->item->fileType); @@ -133,12 +134,16 @@ class ContentBackendController extends ContentController $contentArray = $parsedown->text($block); /* parse markdown-content-array to content-string */ - $content[$key] = $parsedown->markup($contentArray); + $content[$key] = $parsedown->markup($contentArray); } # extract title and delete from content array, array will start at 1 after that. - $title = $content[0]; - unset($content[0]); + $title = '# add title'; + if(isset($content[0])) + { + $title = $content[0]; + unset($content[0]); + } return $this->render($response, 'editor/editor-blox.twig', array('navigation' => $this->structure, 'title' => $title, 'content' => $content, 'item' => $this->item, 'settings' => $this->settings )); } diff --git a/system/Controllers/SettingsController.php b/system/Controllers/SettingsController.php index 652e15c..891168d 100644 --- a/system/Controllers/SettingsController.php +++ b/system/Controllers/SettingsController.php @@ -95,7 +95,7 @@ class SettingsController extends Controller /* store them as default theme data with author, year, default settings and field-definitions */ $themedata[$themeName] = $themeSettings; } - + if(isset($themeSettings['forms']['fields'])) { $fields = $this->getFields($userSettings, 'themes', $themeName, $themeSettings); @@ -271,6 +271,12 @@ class SettingsController extends Controller $themeName = isset($params['theme']) ? $params['theme'] : false; $userInput = isset($params[$themeName]) ? $params[$themeName] : false; $validate = new Validation(); + $themeSettings = \Typemill\Settings::getObjectSettings('themes', $themeName); + + if(isset($themeSettings['settings']['images'])) + { + $userSettings = ['images' => $themeSettings['settings']['images']]; + } /* set theme name and delete theme settings from user settings for the case, that the new theme has no settings */ $userSettings['theme'] = $themeName; diff --git a/system/Extensions/ParsedownExtension.php b/system/Extensions/ParsedownExtension.php index a6be97d..cb0d652 100644 --- a/system/Extensions/ParsedownExtension.php +++ b/system/Extensions/ParsedownExtension.php @@ -333,12 +333,12 @@ class ParsedownExtension extends \ParsedownExtra } $block = trim($block, "\n"); - + $cleanBlocks[] = $block; } return $cleanBlocks; } - + public function arrayBlocksToMarkdown(array $arrayBlocks) { $markdown = ''; diff --git a/system/Models/ProcessImage.php b/system/Models/ProcessImage.php new file mode 100644 index 0000000..5b25018 --- /dev/null +++ b/system/Models/ProcessImage.php @@ -0,0 +1,325 @@ +clearTempFolder(); + + # decode the image from base64-string + $imageDecoded = $this->decodeImage($image); + $imageData = $imageDecoded["image"]; + $imageType = $imageDecoded["type"]; + + # transform image-stream into image + $image = imagecreatefromstring($imageData); + + # get the size of the original image + $imageSize = $this->getImageSize($image); + + # check the desired sizes and calculate the height, if not set + $desiredSizes = $this->setHeight($imageSize, $desiredSizes); + + # resize the images + $resizedImages = $this->imageResize($image, $imageSize, $desiredSizes, $imageType); + + $basePath = getcwd() . DIRECTORY_SEPARATOR . 'media'; + $tmpFolder = $basePath . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR; + + $this->saveOriginal($tmpFolder, $imageData, 'original', $imageType); + + if($imageType == "gif" && $this->detectAnimatedGif($imageData)) + { + $this->saveOriginal($tmpFolder, $imageData, 'live', $imageType); + + return true; + } + + # temporary store resized images + foreach($resizedImages as $key => $resizedImage) + { + $this->saveImage($tmpFolder, $resizedImage, $key, $imageType); + } + + return true; + } + + public function detectAnimatedGif($image_file_contents) + { + $is_animated = preg_match('#(\x00\x21\xF9\x04.{4}\x00\x2C.*){2,}#s', $image_file_contents); + if ($is_animated == 1) + { + return true; + } + return false; + } + + public function publishImage(array $desiredSizes) + { + /* get images from tmp folder */ + $basePath = getcwd() . DIRECTORY_SEPARATOR . 'media'; + $tmpFolder = $basePath . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR; + $originalFolder = $basePath . DIRECTORY_SEPARATOR . 'original' . DIRECTORY_SEPARATOR; + $liveFolder = $basePath . DIRECTORY_SEPARATOR . 'live' . DIRECTORY_SEPARATOR; + + $name = uniqid(); + + $files = scandir($tmpFolder); + $success = true; + + foreach($files as $file) + { + if (!in_array($file, array(".",".."))) + { + $tmpfilename = explode(".", $file); + + if($tmpfilename[0] == 'original') + { + $success = rename($tmpFolder . $file, $originalFolder . $name . '-' . $file); + } + else + { + $success = rename($tmpFolder . $file, $liveFolder . $name . '-' . $file); + } + } + } + + if($success) + { + return 'media/live/' . $name . '-live.' . $tmpfilename[1]; + } + + return false; + } + + public function decodeImage(string $image) + { + $imageParts = explode(";base64,", $image); + $imageType = explode("/", $imageParts[0]); + $imageData = base64_decode($imageParts[1]); + + if ($imageData !== false) + { + return array("image" => $imageData, "type" => $imageType[1]); + } + + return false; + } + + public function getImageSize($image) + { + $width = imagesx($image); + $height = imagesy($image); + return array('width' => $width, 'height' => $height); + } + + public function setHeight(array $imageSize, array $desiredSizes) + { + foreach($desiredSizes as $key => $desiredSize) + { + if($desiredSize['width'] > $imageSize['width']) + { + $desiredSizes[$key] = $imageSize; + continue; + } + + if(!isset($desiredSize['height'])) + { + $resizeFactor = $imageSize['width'] / $desiredSize['width']; + $desiredSizes[$key]['height'] = round( ($imageSize['height'] / $resizeFactor), 0); + } + } + return $desiredSizes; + } + + public function imageResize($imageData, array $imageSize, array $desiredSizes, $imageType) + { + $copiedImages = array(); + $source_aspect_ratio = $imageSize['width'] / $imageSize['height']; + + #check transparency + $transparent_index = false; + + if ($imageType = ("png" || "gif")) + { + $transparent_index = imagecolortransparent($imageData); + } + + foreach($desiredSizes as $key => $desiredSize) + { + $desired_aspect_ratio = $desiredSize['width'] / $desiredSize['height']; + + if ( $source_aspect_ratio > $desired_aspect_ratio ) + { + # when source image is wider + $temp_height = $desiredSize['height']; + $temp_width = ( int ) ($desiredSize['height'] * $source_aspect_ratio); + $temp_width = round($temp_width, 0); + } + else + { + # when source image is similar or taller + $temp_width = $desiredSize['width']; + $temp_height = ( int ) ($desiredSize['width'] / $source_aspect_ratio); + $temp_height = round($temp_height, 0); + } + + # Create a temporary GD image with desired size + $temp_gdim = imagecreatetruecolor( $temp_width, $temp_height ); + + if ($transparent_index >= 0 && $imageType == "gif") + { + imagepalettecopy($imageData, $temp_gdim); + imagefill($temp_gdim, 0, 0, $transparent_index); + imagecolortransparent($temp_gdim, $transparent_index); + imagetruecolortopalette($temp_gdim, true, 256); + } + elseif($transparent_index >= 0 && $imageType == "png") + { + imagealphablending($temp_gdim, false); + imagesavealpha($temp_gdim,true); + $transparent = imagecolorallocatealpha($temp_gdim, 255, 255, 255, 127); + imagefilledrectangle($temp_gdim, 0, 0, $temp_width, $temp_height, $transparent); + } + + imagecopyresampled( + $temp_gdim, + $imageData, + 0, 0, + 0, 0, + $temp_width, $temp_height, + $imageSize['width'], $imageSize['height'] + ); + + # Copy cropped region from temporary image into the desired GD image + $x0 = ( $temp_width - $desiredSize['width'] ) / 2; + $y0 = ( $temp_height - $desiredSize['height'] ) / 2; + + $desired_gdim = imagecreatetruecolor( $desiredSize['width'], $desiredSize['height'] ); + + if ($transparent_index >= 0 && $imageType == "gif") + { + # GIF + imagepalettecopy($imageData, $desired_gdim); + imagefill($desired_gdim, 0, 0, $transparent_index); + imagecolortransparent($desired_gdim, $transparent_index); + imagetruecolortopalette($desired_gdim, true, 256); + } + if ($transparent_index >= 0 && $imageType == "png") + { + imagealphablending($desired_gdim, false); + imagesavealpha($desired_gdim,true); + $transparent = imagecolorallocatealpha($desired_gdim, 255, 255, 255, 127); + imagefilledrectangle($desired_gdim, 0, 0, $desiredSize['width'], $desiredSize['height'], $transparent); + } + + imagecopy( + $desired_gdim, + $temp_gdim, + 0, 0, + $x0, $y0, + $desiredSize['width'], $desiredSize['height'] + ); + $copiedImages[$key] = $desired_gdim; + } + return $copiedImages; + } + + public function saveOriginal($folder, $image, $name, $type) + { + if(!file_exists($folder)) + { + mkdir($folder, 0774, true); + } + + $path = $folder . $name . '.' . $type; + + file_put_contents($path, $image); + } + + public function saveImage($folder, $image, $name, $type) + { + if(!file_exists($folder)) + { + mkdir($folder, 0774, true); + } + + if($type == "png") + { + $result = imagepng( $image, $folder . '/' . $name . '.png' ); + } + elseif($type == "gif") + { + $result = imagegif( $image, $folder . '/' . $name . '.gif' ); + } + else + { + $result = imagejpeg( $image, $folder . '/' . $name . '.jpeg' ); + $type = 'jpeg'; + } + + imagedestroy($image); + + if($result) + { + return $name . '.' . $type; + } + + return false; + } + + public function clearTempFolder() + { + $folder = getcwd() . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR; + $files = scandir($folder); + $result = true; + + foreach($files as $file) + { + if (!in_array($file, array(".",".."))) + { + $filelink = $folder . $file; + if(!unlink($filelink)) + { + $success = false; + } + } + } + + return $result; + } + + public function deleteImage($name) + { + $baseFolder = getcwd() . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR; + $original = $baseFolder . 'original' . DIRECTORY_SEPARATOR . $name . '*'; + $live = $baseFolder . 'live' . DIRECTORY_SEPARATOR . $name . '*'; + $success = true; + + foreach(glob($original) as $image) + { + if(!unlink($image)) + { + $success = false; + } + } + + foreach(glob($live) as $image) + { + if(!unlink($image)) + { + $success = false; + } + } + + return $success; + } +} + +?> \ No newline at end of file diff --git a/system/Routes/Api.php b/system/Routes/Api.php index 55d4d27..7833085 100644 --- a/system/Routes/Api.php +++ b/system/Routes/Api.php @@ -18,4 +18,7 @@ $app->post('/api/v1/basefolder', ContentApiController::class . ':createBaseFolde $app->put('/api/v1/block', ContentApiController::class . ':updateBlock')->setName('api.block.update')->add(new RestrictApiAccess($container['router'])); $app->delete('/api/v1/block', ContentApiController::class . ':deleteBlock')->setName('api.block.delete')->add(new RestrictApiAccess($container['router'])); -$app->put('/api/v1/moveblock', ContentApiController::class . ':moveBlock')->setName('api.block.move')->add(new RestrictApiAccess($container['router'])); \ No newline at end of file +$app->put('/api/v1/moveblock', ContentApiController::class . ':moveBlock')->setName('api.block.move')->add(new RestrictApiAccess($container['router'])); + +$app->post('/api/v1/image', ContentApiController::class . ':createImage')->setName('api.image.create')->add(new RestrictApiAccess($container['router'])); +$app->put('/api/v1/image', ContentApiController::class . ':publishImage')->setName('api.image.publish')->add(new RestrictApiAccess($container['router'])); \ No newline at end of file diff --git a/system/Settings.php b/system/Settings.php index ca52329..a21867f 100644 --- a/system/Settings.php +++ b/system/Settings.php @@ -11,12 +11,13 @@ class Settings if($userSettings) { - $settings = array_merge($settings, $userSettings); - $settings['setup'] = false; + $imgSettings = $settings['images']; + $settings = array_merge($settings, $userSettings); + $settings['setup'] = false; } - - $settings['themePath'] = $settings['rootPath'] . $settings['themeFolder'] . DIRECTORY_SEPARATOR . $settings['theme']; - + $settings['images'] = isset($userSettings['images']) ? array_merge($imgSettings, $userSettings['images']) : $imgSettings; + $settings['themePath'] = $settings['rootPath'] . $settings['themeFolder'] . DIRECTORY_SEPARATOR . $settings['theme']; + return array('settings' => $settings); } @@ -44,9 +45,10 @@ class Settings 'contentFolder' => 'content', 'cache' => true, 'cachePath' => $rootPath . 'cache', - 'version' => '1.2.7', + 'version' => '1.2.8', 'setup' => true, - 'welcome' => true + 'welcome' => true, + 'images' => ['live' => ['width' => 720], 'mlibrary' => ['width' => 50, 'height' => 50]], ]; } @@ -87,7 +89,7 @@ class Settings $yaml = new Models\WriteYaml(); $settings = array_merge($userSettings, $settings); - + /* write settings to yaml */ $yaml->updateYaml('settings', 'settings.yaml', $settings); } diff --git a/system/author/auth/login.twig b/system/author/auth/login.twig index 7e9febc..0bb6d57 100644 --- a/system/author/auth/login.twig +++ b/system/author/auth/login.twig @@ -33,9 +33,10 @@
{% endif %} - - + - + {% endblock %} \ No newline at end of file diff --git a/system/author/css/fontello/LICENSE.txt b/system/author/css/fontello/LICENSE.txt index 8fa3da3..5897837 100644 --- a/system/author/css/fontello/LICENSE.txt +++ b/system/author/css/fontello/LICENSE.txt @@ -1,6 +1,15 @@ Font license info +## Entypo + + Copyright (C) 2012 by Daniel Bruce + + Author: Daniel Bruce + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://www.entypo.com + + ## Font Awesome Copyright (C) 2016 by Dave Gandy diff --git a/system/author/css/fontello/config.json b/system/author/css/fontello/config.json index 5e3d48e..0e0c091 100644 --- a/system/author/css/fontello/config.json +++ b/system/author/css/fontello/config.json @@ -6,46 +6,46 @@ "units_per_em": 1000, "ascent": 850, "glyphs": [ + { + "uid": "c709da589c923ba3c2ad48d9fc563e93", + "css": "cancel", + "code": 59392, + "src": "entypo" + }, + { + "uid": "381da2c2f7fd51f8de877c044d7f439d", + "css": "picture", + "code": 59393, + "src": "fontawesome" + }, { "uid": "f9cbf7508cd04145ade2800169959eef", "css": "font", - "code": 59392, + "code": 59394, "src": "fontawesome" }, { "uid": "e99461abfef3923546da8d745372c995", "css": "cog", - "code": 59393, - "src": "fontawesome" - }, - { - "uid": "381da2c2f7fd51f8de877c044d7f439d", - "css": "picture", - "code": 59394, + "code": 59395, "src": "fontawesome" }, { "uid": "8b9e6a8dd8f67f7c003ed8e7e5ee0857", "css": "off", - "code": 59395, + "code": 59396, "src": "fontawesome" }, { "uid": "d7271d490b71df4311e32cdacae8b331", "css": "home", - "code": 59396, + "code": 59397, "src": "fontawesome" }, { "uid": "44e04715aecbca7f266a17d5a7863c68", "css": "plus", - "code": 59397, - "src": "fontawesome" - }, - { - "uid": "e15f0d620a7897e2035c18c80142f6d9", - "css": "link-ext", - "code": 61582, + "code": 59398, "src": "fontawesome" }, { @@ -54,6 +54,12 @@ "code": 61618, "src": "fontawesome" }, + { + "uid": "e15f0d620a7897e2035c18c80142f6d9", + "css": "link-ext", + "code": 61582, + "src": "fontawesome" + }, { "uid": "5408be43f7c42bccee419c6be53fdef5", "css": "doc-text", @@ -65,24 +71,6 @@ "css": "folder-empty", "code": 61716, "src": "fontawesome" - }, - { - "uid": "d3b3f17bc3eb7cd809a07bbd4d178bee", - "css": "resize-vertical", - "code": 59398, - "src": "fontawesome" - }, - { - "uid": "6605ee6441bf499ffa3c63d3c7409471", - "css": "move", - "code": 61511, - "src": "fontawesome" - }, - { - "uid": "5211af474d3a9848f67f945e2ccaf143", - "css": "cancel", - "code": 59399, - "src": "fontawesome" } ] } \ No newline at end of file diff --git a/system/author/css/fontello/css/fontello-codes.css b/system/author/css/fontello/css/fontello-codes.css index 6b45ebd..2225ca3 100644 --- a/system/author/css/fontello/css/fontello-codes.css +++ b/system/author/css/fontello/css/fontello-codes.css @@ -1,13 +1,11 @@ -.icon-font:before { content: '\e800'; } /* '' */ -.icon-cog:before { content: '\e801'; } /* '' */ -.icon-picture:before { content: '\e802'; } /* '' */ -.icon-off:before { content: '\e803'; } /* '' */ -.icon-home:before { content: '\e804'; } /* '' */ -.icon-plus:before { content: '\e805'; } /* '' */ -.icon-resize-vertical:before { content: '\e806'; } /* '' */ -.icon-cancel:before { content: '\e807'; } /* '' */ -.icon-move:before { content: '\f047'; } /* '' */ +.icon-cancel:before { content: '\e800'; } /* '' */ +.icon-picture:before { content: '\e801'; } /* '' */ +.icon-font:before { content: '\e802'; } /* '' */ +.icon-cog:before { content: '\e803'; } /* '' */ +.icon-off:before { content: '\e804'; } /* '' */ +.icon-home:before { content: '\e805'; } /* '' */ +.icon-plus:before { content: '\e806'; } /* '' */ .icon-link-ext:before { content: '\f08e'; } /* '' */ .icon-resize-full-alt:before { content: '\f0b2'; } /* '' */ .icon-doc-text:before { content: '\f0f6'; } /* '' */ diff --git a/system/author/css/fontello/css/fontello-embedded.css b/system/author/css/fontello/css/fontello-embedded.css index 91b0921..026db0b 100644 --- a/system/author/css/fontello/css/fontello-embedded.css +++ b/system/author/css/fontello/css/fontello-embedded.css @@ -1,15 +1,15 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?83994349'); - src: url('../font/fontello.eot?83994349#iefix') format('embedded-opentype'), - url('../font/fontello.svg?83994349#fontello') format('svg'); + src: url('../font/fontello.eot?72138273'); + src: url('../font/fontello.eot?72138273#iefix') format('embedded-opentype'), + url('../font/fontello.svg?72138273#fontello') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'fontello'; - src: url('data:application/octet-stream;base64,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') format('woff'), - url('data:application/octet-stream;base64,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') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,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') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -17,7 +17,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?83994349#fontello') format('svg'); + src: url('../font/fontello.svg?72138273#fontello') format('svg'); } } */ @@ -52,15 +52,13 @@ /* Uncomment for 3D effect */ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } -.icon-font:before { content: '\e800'; } /* '' */ -.icon-cog:before { content: '\e801'; } /* '' */ -.icon-picture:before { content: '\e802'; } /* '' */ -.icon-off:before { content: '\e803'; } /* '' */ -.icon-home:before { content: '\e804'; } /* '' */ -.icon-plus:before { content: '\e805'; } /* '' */ -.icon-resize-vertical:before { content: '\e806'; } /* '' */ -.icon-cancel:before { content: '\e807'; } /* '' */ -.icon-move:before { content: '\f047'; } /* '' */ +.icon-cancel:before { content: '\e800'; } /* '' */ +.icon-picture:before { content: '\e801'; } /* '' */ +.icon-font:before { content: '\e802'; } /* '' */ +.icon-cog:before { content: '\e803'; } /* '' */ +.icon-off:before { content: '\e804'; } /* '' */ +.icon-home:before { content: '\e805'; } /* '' */ +.icon-plus:before { content: '\e806'; } /* '' */ .icon-link-ext:before { content: '\f08e'; } /* '' */ .icon-resize-full-alt:before { content: '\f0b2'; } /* '' */ .icon-doc-text:before { content: '\f0f6'; } /* '' */ diff --git a/system/author/css/fontello/css/fontello-ie7-codes.css b/system/author/css/fontello/css/fontello-ie7-codes.css index c2643ba..10f7454 100644 --- a/system/author/css/fontello/css/fontello-ie7-codes.css +++ b/system/author/css/fontello/css/fontello-ie7-codes.css @@ -1,13 +1,11 @@ -.icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } diff --git a/system/author/css/fontello/css/fontello-ie7.css b/system/author/css/fontello/css/fontello-ie7.css index dacfc8c..aba1d79 100644 --- a/system/author/css/fontello/css/fontello-ie7.css +++ b/system/author/css/fontello/css/fontello-ie7.css @@ -10,15 +10,13 @@ /* font-size: 120%; */ } -.icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-resize-vertical { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-move { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-font { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-link-ext { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-doc-text { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } diff --git a/system/author/css/fontello/css/fontello.css b/system/author/css/fontello/css/fontello.css index 83f4c63..c10c103 100644 --- a/system/author/css/fontello/css/fontello.css +++ b/system/author/css/fontello/css/fontello.css @@ -1,11 +1,11 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?89525311'); - src: url('../font/fontello.eot?89525311#iefix') format('embedded-opentype'), - url('../font/fontello.woff2?89525311') format('woff2'), - url('../font/fontello.woff?89525311') format('woff'), - url('../font/fontello.ttf?89525311') format('truetype'), - url('../font/fontello.svg?89525311#fontello') format('svg'); + src: url('../font/fontello.eot?52515879'); + src: url('../font/fontello.eot?52515879#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?52515879') format('woff2'), + url('../font/fontello.woff?52515879') format('woff'), + url('../font/fontello.ttf?52515879') format('truetype'), + url('../font/fontello.svg?52515879#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -15,7 +15,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?89525311#fontello') format('svg'); + src: url('../font/fontello.svg?52515879#fontello') format('svg'); } } */ @@ -55,15 +55,13 @@ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ } -.icon-font:before { content: '\e800'; } /* '' */ -.icon-cog:before { content: '\e801'; } /* '' */ -.icon-picture:before { content: '\e802'; } /* '' */ -.icon-off:before { content: '\e803'; } /* '' */ -.icon-home:before { content: '\e804'; } /* '' */ -.icon-plus:before { content: '\e805'; } /* '' */ -.icon-resize-vertical:before { content: '\e806'; } /* '' */ -.icon-cancel:before { content: '\e807'; } /* '' */ -.icon-move:before { content: '\f047'; } /* '' */ +.icon-cancel:before { content: '\e800'; } /* '' */ +.icon-picture:before { content: '\e801'; } /* '' */ +.icon-font:before { content: '\e802'; } /* '' */ +.icon-cog:before { content: '\e803'; } /* '' */ +.icon-off:before { content: '\e804'; } /* '' */ +.icon-home:before { content: '\e805'; } /* '' */ +.icon-plus:before { content: '\e806'; } /* '' */ .icon-link-ext:before { content: '\f08e'; } /* '' */ .icon-resize-full-alt:before { content: '\f0b2'; } /* '' */ .icon-doc-text:before { content: '\f0f6'; } /* '' */ diff --git a/system/author/css/fontello/demo.html b/system/author/css/fontello/demo.html index d45d652..4750e9a 100644 --- a/system/author/css/fontello/demo.html +++ b/system/author/css/fontello/demo.html @@ -229,11 +229,11 @@ body { } @font-face { font-family: 'fontello'; - src: url('./font/fontello.eot?63828600'); - src: url('./font/fontello.eot?63828600#iefix') format('embedded-opentype'), - url('./font/fontello.woff?63828600') format('woff'), - url('./font/fontello.ttf?63828600') format('truetype'), - url('./font/fontello.svg?63828600#fontello') format('svg'); + src: url('./font/fontello.eot?74591350'); + src: url('./font/fontello.eot?74591350#iefix') format('embedded-opentype'), + url('./font/fontello.woff?74591350') format('woff'), + url('./font/fontello.ttf?74591350') format('truetype'), + url('./font/fontello.svg?74591350#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -298,24 +298,20 @@ body {drag a picture or click to select