140 lines
4.9 KiB
PHP
140 lines
4.9 KiB
PHP
<?php
|
|
/**
|
|
* @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870
|
|
* http://www.joomlack.fr
|
|
* @license GNU/GPL
|
|
* */
|
|
|
|
defined('JPATH_PLATFORM') or die;
|
|
|
|
use Pagebuilderck\CKFof;
|
|
|
|
if (!defined('PAGEBUILDERCK_MEDIA_URI'))
|
|
{
|
|
define('PAGEBUILDERCK_MEDIA_URI', JUri::root(true) . '/media/com_pagebuilderck');
|
|
}
|
|
|
|
class JFormFieldPagebuilderck extends JFormField
|
|
{
|
|
protected $elements;
|
|
|
|
/**
|
|
* The form field type.
|
|
*
|
|
* @var string
|
|
*
|
|
* @since 11.1
|
|
*/
|
|
protected $type = 'Pagebuilderck';
|
|
|
|
protected function getPathToElements() {
|
|
$localpath = dirname(__FILE__);
|
|
$rootpath = JPATH_ROOT;
|
|
$httppath = trim(JURI::root(), "/");
|
|
$pathtoelements = str_replace("\\", "/", str_replace($rootpath, $httppath, $localpath));
|
|
return $pathtoelements;
|
|
}
|
|
|
|
/*
|
|
* Render the input only if we are in frontend editing because the renderField method does not work
|
|
*/
|
|
protected function getInput() {
|
|
$app = JFactory::getApplication();
|
|
$doc = JFactory::getDocument();
|
|
if (CKFof::isSite()) {
|
|
$doc->addStyleDeclaration('
|
|
.pagebuilderckfrontend #workspaceparentck:not(.collapsedck) #workspaceck {
|
|
margin-left: 20px;
|
|
}
|
|
|
|
.pagebuilderckfrontend #workspaceck {
|
|
margin-left: -120px;
|
|
}
|
|
|
|
#options .accordion-body.collapse:not(.in) #menuck {
|
|
display: none;
|
|
}
|
|
|
|
#options .accordion-body.collapse.in {
|
|
height: auto !important;
|
|
}
|
|
');
|
|
echo '<div class="pagebuilderckfrontend">';
|
|
$this->renderField();
|
|
echo '</div>';
|
|
}
|
|
}
|
|
|
|
public function renderField($options = array()) {
|
|
include_once JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/helpers/ckfof.php';
|
|
$app = JFactory::getApplication();
|
|
$this->input = CKFof::getInput();
|
|
|
|
// loads the language files from the frontend
|
|
// loads the language files from the component frontend
|
|
$lang = JFactory::getLanguage();
|
|
$lang->load('com_pagebuilderck', JPATH_SITE . '/components/com_pagebuilderck', $lang->getTag(), false);
|
|
$lang->load('com_pagebuilderck', JPATH_SITE, $lang->getTag(), false);
|
|
?>
|
|
<input type="hidden" name="<?php echo $this->name ?>" id="<?php echo $this->id ?>" />
|
|
<style>
|
|
iframe {border:none;}
|
|
.pagebuilderck_container {resize:vertical;overflow:auto;}
|
|
/* for joomla 4 */
|
|
#fieldset-edition [class*="column-count-"] { column-count: initial; }
|
|
#fieldset-edition [class*=" column-"] > div, #fieldset-edition [class^="column-"] > div { display: block; }
|
|
#fieldset-edition [class*=" column-"] .modal { display: none; }
|
|
</style>
|
|
|
|
<?php if (CKFof::isSite()) { ?>
|
|
<div class="ckbutton ckbutton-primary" style="display: block;" onclick="ckModuleEditFullScreen()"><?php echo JText::_('CK_EDIT_FULLSCREEN') ?></div>
|
|
<?php } ?>
|
|
<div class="pagebuilderck_container"></div>
|
|
<?php
|
|
include_once JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/helpers/menustyles.php';
|
|
include_once JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/helpers/stylescss.php';
|
|
include_once JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/helpers/ckeditor.php';
|
|
include_once JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/helpers/pagebuilderck.php';
|
|
|
|
$this->value = str_replace("|URIROOT|", JUri::root(true), $this->value);
|
|
// get instance of the editor to load the css / js in the page
|
|
// $this->ckeditor = PagebuilderckHelper::loadEditor();
|
|
// need the tinymce instance for the items edition
|
|
$editor = JFactory::getConfig()->get('editor') == 'jce' ? 'jce' : 'tinymce';
|
|
$editor = JEditor::getInstance($editor);
|
|
$editor->display('ckeditor', $html = '', $width = '', $height = '200px', $col='', $row='', $buttons = true, $id = 'ckeditor');
|
|
// Get an instance of the model
|
|
// JModelLegacy::addIncludePath(JPATH_SITE . '/administrator/components/com_pagebuilderck/models', 'PagebuilderckModel');
|
|
$model = CKFof::getModel('Elements');
|
|
|
|
// $model = $this->getModel('Elements', '', array());
|
|
$this->elements = $model->getItems();
|
|
include_once(JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/views/page/tmpl/include.php');
|
|
include_once(JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/views/page/tmpl/submitform.php');
|
|
?>
|
|
<script src="<?php echo PAGEBUILDERCK_MEDIA_URI ?>/assets/mod_pagebuilderck_edition.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
JoomlaCK.beforesubmitbutton = function() {
|
|
var workspace = $ck('#workspaceck');
|
|
$ck('#<?php echo $this->id ?>').attr('value', workspace.html());
|
|
}
|
|
</script>
|
|
<div id="workspaceparentck">
|
|
<?php include_once(JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/views/page/tmpl/menu.php'); ?>
|
|
<?php include_once(JPATH_ADMINISTRATOR . '/components/com_pagebuilderck/views/page/tmpl/toolbar.php'); ?>
|
|
<div id="workspaceck" class="pagebuilderck workspaceck">
|
|
<?php
|
|
if ($this->value) {
|
|
echo $this->value;
|
|
} else { ?>
|
|
<div class="googlefontscall"></div>
|
|
<?php }
|
|
?>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
include PAGEBUILDERCK_PATH . '/views/page/tmpl/contextmenu.php';
|
|
return;
|
|
}
|
|
}
|