first commit
This commit is contained in:
@@ -0,0 +1,263 @@
|
||||
<?php
|
||||
/**
|
||||
* @name Page Builder CK
|
||||
* @package com_pagebuilderck
|
||||
* @copyright Copyright (C) 2015. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
* @author Cedric Keiflin - https://www.template-creator.com - https://www.joomlack.fr
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
$app = JFactory::getApplication();
|
||||
$input = $app->input;
|
||||
$prefix = $input->get('prefix', '', 'string');
|
||||
?>
|
||||
<style>
|
||||
#fontpreview {
|
||||
font-size: 28px;
|
||||
display: block;
|
||||
line-height: 1.5em;
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block !important;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'icomoon';
|
||||
src:url('https://s3.amazonaws.com/icomoon.io/4/Loading/icomoon.eot?-9haulc');
|
||||
src:url('https://s3.amazonaws.com/icomoon.io/4/Loading/icomoon.eot?#iefix-9haulc') format('embedded-opentype'),
|
||||
url('https://s3.amazonaws.com/icomoon.io/4/Loading/icomoon.woff?-9haulc') format('woff'),
|
||||
url('https://s3.amazonaws.com/icomoon.io/4/Loading/icomoon.ttf?-9haulc') format('truetype'),
|
||||
url('https://s3.amazonaws.com/icomoon.io/4/Loading/icomoon.svg?-9haulc#icomoon') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
[class^="icon-"], [class*=" icon-"] {
|
||||
font-family: 'icomoon';
|
||||
speak: none;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
line-height: 1;
|
||||
|
||||
/* Better Font Rendering =========== */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-spinner:before {
|
||||
content: "\e000";
|
||||
}
|
||||
.icon-spinner-2:before {
|
||||
content: "\e001";
|
||||
}
|
||||
.icon-spinner-3:before {
|
||||
content: "\e002";
|
||||
}
|
||||
.icon-spinner-4:before {
|
||||
content: "\e003";
|
||||
}
|
||||
.icon-spinner-5:before {
|
||||
content: "\e004";
|
||||
}
|
||||
.icon-spinner-6:before {
|
||||
content: "\e005";
|
||||
}
|
||||
.icon-spinner-7:before {
|
||||
content: "\e006";
|
||||
}
|
||||
|
||||
@keyframes anim-rotate {
|
||||
0% {
|
||||
transform: rotate(0);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
.spinner {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
height: 1em;
|
||||
line-height: 1;
|
||||
margin: .5em;
|
||||
animation: anim-rotate 2s infinite linear;
|
||||
color: #000;
|
||||
text-shadow: 0 0 .25em rgba(255,255,255, .3);
|
||||
}
|
||||
.spinner--steps {
|
||||
animation: anim-rotate 1s infinite steps(8);
|
||||
}
|
||||
.spinner--steps2 {
|
||||
animation: anim-rotate 1s infinite steps(12);
|
||||
}
|
||||
</style>
|
||||
<script src="<?php echo PAGEBUILDERCK_MEDIA_URI ?>/assets/jqueryck.min.js" type="text/javascript"></script>
|
||||
<?php PagebuilderckHelper::loadInlineCKFramework(); ?>
|
||||
<div id="googlefontstyle"></div>
|
||||
<div class="ckinterface" style="padding: 20px;">
|
||||
<p>
|
||||
<input id ="googlefonturl" name="googlefonturl" type="text" style="height:auto;margin:0;width: 500px;max-width:100%;" placeholder="<?php echo JText::_('CK_GOOGLEFONT_URL') ?>" onchange="searchgooglefont()" />
|
||||
<button class="ckbutton" onclick="searchgooglefont()"><?php echo JText::_('CK_SEARCH') ?></button><i class="spinner spinner--steps icon-spinner"></i>
|
||||
<button class="ckbutton ckbutton-primary" onclick="returngooglefont()"><?php echo JText::_('CK_SUBMIT') ?></button>
|
||||
</p>
|
||||
<hr />
|
||||
<input type="hidden" id="fonturl" name="fonturl" value="" />
|
||||
<p id="fontapplied"><label><?php echo JText::_('CK_FONT_APPLIED') ?></label> : <span id="fontappliedname" class="badge badge-success"><?php echo JText::_('CK_NONE') ?><span></p>
|
||||
<p id="fontweight"><label><?php echo JText::_('CK_FONTWEIGHT') ?></label> : <span class=""><input id="googlefontweight" name="googlefontweight" type="text" onchange="updatefontweight()" style="height:auto;margin:0;" placeholder="300" /><span></p>
|
||||
<p id="fontpreview">Grumpy wizards make toxic brew for the evil Queen and Jack.</p>
|
||||
</div>
|
||||
<script>
|
||||
//<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
|
||||
// <link href='https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,greek-ext' rel='stylesheet' type='text/css'>
|
||||
//https://fonts.googleapis.com/css?family=Open+Sans
|
||||
// Open+Sans
|
||||
// Opens Sans
|
||||
/*
|
||||
* Test the given value and search for a google font
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
function searchgooglefont() {
|
||||
var url = window.parent.ckCapitalize(jQuery('#googlefonturl').val()).trim("'");
|
||||
if (! url) {
|
||||
alert ('<?php echo JText::_('CK_EMPTY_URL', true) ?>');
|
||||
jQuery('#googlefonturl').addClass('invalid').focus();
|
||||
return;
|
||||
}
|
||||
jQuery('.spinner').css('opacity', '1');
|
||||
var valuetest = /\+/;
|
||||
if ( url.indexOf("http") == 0 ) {
|
||||
getGooglefontFromUrl(url); // https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600
|
||||
} else if ( url.indexOf("<link") == 0 ) {
|
||||
getGooglefontFromStylesheet(url); // <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600' rel='stylesheet' type='text/css'>
|
||||
} else if ( valuetest.test(url) ) {
|
||||
getGooglefontFromFontvalue(url); // Open+Sans
|
||||
} else {
|
||||
getGooglefontFromFontname(url); // Open Sans
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Load the font stylesheet from its url
|
||||
* @param : url - the http path to the stylesheet (https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600)
|
||||
*
|
||||
* return : void
|
||||
*/
|
||||
function getGooglefontFromUrl(url) {
|
||||
jQuery.ajax({
|
||||
url: url,
|
||||
})
|
||||
.done(function( data ) {
|
||||
if (data) {
|
||||
jQuery('#googlefontstyle').html('<style>' + data + '</style>');
|
||||
var fontName = getNameFromContent(data).replace(/'/g, "");
|
||||
if (fontName) {
|
||||
jQuery('#fontappliedname').html(fontName);
|
||||
jQuery('#fonturl').val(url);
|
||||
updateFontPreview(fontName);
|
||||
}
|
||||
} else {
|
||||
alert( '<?php echo JText::_('CK_FONT_NOT_FOUND', true) ?>' );
|
||||
}
|
||||
jQuery('.spinner').css('opacity', '0');
|
||||
})
|
||||
.fail(function() {
|
||||
alert( '<?php echo JText::_('CK_FONT_NOT_FOUND', true) ?>' );
|
||||
jQuery('.spinner').css('opacity', '0');
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the font stylesheet from its stylesheet code
|
||||
* @param : url - the stylesheet code (<link href='https://fonts.googleapis.com/css?family=Open+Sans&subset=latin,greek-ext' rel='stylesheet' type='text/css'>)
|
||||
*
|
||||
* return : String - the stylesheet content
|
||||
*/
|
||||
function getGooglefontFromStylesheet(stylesheet) {
|
||||
var re = /href='(.*?)'/;
|
||||
var url = stylesheet.match(re);
|
||||
if (typeof(url[1]) == 'undefined') {
|
||||
alert('<?php echo JText::_('CK_FONTURL_NOT_FOUND', true) ?>');
|
||||
return;
|
||||
}
|
||||
getGooglefontFromUrl(url[1].trim("'"));
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the font stylesheet from its url
|
||||
* @param : url - the http path to the stylesheet (Open+Sans)
|
||||
*
|
||||
* return : String - the stylesheet content
|
||||
*/
|
||||
function getGooglefontFromFontvalue(name) {
|
||||
var url = 'https://fonts.googleapis.com/css?family=' + name;
|
||||
getGooglefontFromUrl(url);
|
||||
}
|
||||
|
||||
/*
|
||||
* Load the font stylesheet from its url
|
||||
* @param : url - the http path to the stylesheet (Open Sans)
|
||||
*
|
||||
* return : String - the stylesheet content
|
||||
*/
|
||||
function getGooglefontFromFontname(name) {
|
||||
name = name.replace(' ', '+');
|
||||
getGooglefontFromFontvalue(name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Extract the name of the font from the google font styles
|
||||
* @param content : string - the font styles from google
|
||||
*
|
||||
* return string - the name
|
||||
*/
|
||||
function getNameFromContent(content) {
|
||||
// font-family:(.*?);
|
||||
var re = /font-family:(.*?);/;
|
||||
var fontName = content.match(re);
|
||||
if (typeof(fontName[1]) == 'undefined') {
|
||||
alert('<?php echo JText::_('CK_FONTNAME_NOT_FOUND', true) ?>');
|
||||
return '';
|
||||
}
|
||||
return fontName[1].trim().trim("'");
|
||||
}
|
||||
|
||||
/*
|
||||
* Apply the font to the preview text
|
||||
* @param fontName : string - the font name
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
function updateFontPreview(fontName) {
|
||||
jQuery('#fontpreview').css('font-family', fontName);
|
||||
updatefontweight();
|
||||
}
|
||||
|
||||
/*
|
||||
* Apply the font weight to the preview text
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
function updatefontweight() {
|
||||
jQuery('#fontpreview').css('font-weight', jQuery('#googlefontweight').val());
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the name and font weight and return them into the parent window
|
||||
*
|
||||
* return void
|
||||
*/
|
||||
function returngooglefont() {
|
||||
// if (! jQuery('#fonturl').val()) return;
|
||||
window.parent.ckSetGoogleFont('<?php echo $prefix ?>', jQuery('#fonturl').val(), jQuery('#fontappliedname').text(), jQuery('#googlefontweight').val());
|
||||
window.parent.CKBox.close();
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user