first commit

This commit is contained in:
2026-02-08 21:16:11 +01:00
commit e17b7026fd
8881 changed files with 1160453 additions and 0 deletions

View File

@@ -0,0 +1,146 @@
<?php
/**
* @copyright Copyright (C) 2015 Cédric KEIFLIN alias ced1870
* https://www.template-creator.com
* https://www.joomlack.fr
* @license GNU/GPL
* */
defined('_JEXEC') or die('Restricted access');
jimport('joomla.event.plugin');
class plgPagebuilderckAccordion extends JPlugin {
private $context = 'PLG_PAGEBUILDERCK_ACCORDION';
private $type = 'accordion';
function __construct(&$subject, $params) {
parent::__construct($subject, $params);
}
/*
* Construct the Menu Item to drag into the interface
*
* Return Object with item data
*/
public function onPagebuilderckAddItemToMenu() {
// load the language files of the plugin
$this->loadLanguage();
// create the menu item
$menuitem = new stdClass();
$menuitem->type = $this->type;
$menuitem->group = 'text';
$menuitem->title = JText::_($this->context . '_MENUITEM_TITLE');
$menuitem->description = JText::_($this->context . '_MENUITEM_DESC');
$menuitem->image = JUri::root(true) . '/plugins/pagebuilderck/accordion/assets/images/accordion.svg';
return $menuitem;
}
/*
* Display the html code for the item to be used into the interface
*
* Return String the html code
*/
public function onPagebuilderckLoadItemContentAccordion() {
$input = JFactory::getApplication()->input;
$id = $input->get('ckid', '', 'string');
// ckstyle and inner classes are needed to get the styles from the interface
?>
<div id="<?php echo $id; ?>" class="cktype" data-type="accordion" onshow="jQuery(this).find('.accordionsck').accordionck(accordionckOptions);ckAddEditionForNestedAddons('#<?php echo $id; ?>');">
<div class="ckstyle">
</div>
<div id="<?php echo $id; ?>_accordion" class="accordionsck">
<h3><span class="itemtitleck">Section 1</span></h3>
<div>
<div class="innercontent"></div>
<div class="accordionck itemcontentck">
<p>
Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
</p>
</div>
<div class="innercontent"></div>
</div>
<h3><span class="itemtitleck">Section 2</span></h3>
<div>
<div class="innercontent"></div>
<div class="accordionck itemcontentck">
<p>
Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
suscipit faucibus urna.
</p>
</div>
<div class="innercontent"></div>
</div>
<h3><span class="itemtitleck">Section 3</span></h3>
<div>
<div class="innercontent"></div>
<div class="accordionck itemcontentck">
<p>
Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
</p>
<ul>
<li>List item one</li>
<li>List item two</li>
<li>List item three</li>
</ul>
</div>
<div class="innercontent"></div>
</div>
<h3><span class="itemtitleck">Section 4</span></h3>
<div>
<div class="innercontent"></div>
<div class="accordionck itemcontentck">
<p>
Cras dictum. Pellentesque habitant morbi tristique senectus et netus
et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
mauris vel est.
</p>
<p>
Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
inceptos himenaeos.
</p>
</div>
<div class="innercontent"></div>
</div>
</div>
</div>
<?php
}
/*
* Load the interface for the item edition
*
* Return String the html code
*/
public function onPagebuilderckLoadItemOptionsAccordion() {
// load the language files of the plugin
$this->loadLanguage();
// load the interface for the options
$tpl = JPATH_SITE . '/plugins/pagebuilderck/accordion/layouts/edit_accordion.php';
return $tpl;
}
/*
* Display the html code for the item to be used into the frontend page
* @param string the item object from simple_html_dom
*
* Return String the html code
*/
public function onPagebuilderckRenderItemAccordion($item) {
return $item->innertext;
}
}

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<extension version="3" type="plugin" group="pagebuilderck" method="upgrade">
<name>plg_pagebuilderck_accordion_xml_name</name>
<creationDate>December 2015</creationDate>
<copyright>Copyright (C) 2015. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later</license>
<author>Cedric Keiflin</author>
<authorEmail>ced1870@gmail.com</authorEmail>
<authorUrl>https://www.joomlack.fr</authorUrl>
<version>3.0.0</version>
<description>Accordion item for Page Builder CK</description>
<files>
<filename plugin="accordion">accordion.php</filename>
<folder>language</folder>
<folder>layouts</folder>
<folder>assets</folder>
</files>
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.plg_pagebuilderck_accordion.sys.ini</language>
<language tag="en-GB">en-GB/en-GB.plg_pagebuilderck_accordion.ini</language>
<language tag="fr-FR">fr-FR/fr-FR.plg_pagebuilderck_accordion.sys.ini</language>
<language tag="fr-FR">fr-FR/fr-FR.plg_pagebuilderck_accordion.ini</language>
</languages>
</extension>

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="512px" height="512px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;"><g transform="matrix(2.08267,0,0,2.08267,-425.202,2.84748)"><g transform="matrix(5.58723,0,0,5.58723,204.162,-1.36723)"><rect x="0" y="0" width="44" height="44" style="fill:none;"/></g><g transform="matrix(7.25534,0,0,4.33604,168.604,-23.5604)"><path d="M7.333,9.548C7.333,6.688 8.421,7.333 11,7.333L33,7.333C35.579,7.333 36.667,6.728 36.667,9.548L36.667,16.192C36.667,19.052 35.579,18.333 33,18.333L11,18.333C8.364,18.333 7.333,19.052 7.333,16.192L7.333,9.548Z" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.61px;"/></g><g transform="matrix(7.25534,0,0,4.33604,168.604,29.5271)"><path d="M7.333,9.548C7.333,6.688 8.421,7.333 11,7.333L33,7.333C35.579,7.333 36.667,6.728 36.667,9.548L36.667,16.192C36.667,19.052 35.579,18.333 33,18.333L11,18.333C8.364,18.333 7.333,19.052 7.333,16.192L7.333,9.548Z" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.61px;"/></g><g transform="matrix(7.25534,0,0,4.33604,168.604,150.36)"><path d="M7.333,9.548C7.333,6.688 8.421,7.333 11,7.333L33,7.333C35.579,7.333 36.667,6.728 36.667,9.548L36.667,16.192C36.667,19.052 35.579,18.333 33,18.333L11,18.333C8.364,18.333 7.333,19.052 7.333,16.192L7.333,9.548Z" style="fill:none;fill-rule:nonzero;stroke:black;stroke-width:1.61px;"/></g><g transform="matrix(0.623506,0,0,0.684822,181.074,-73.3238)"><path d="M120,270L120,372.665" style="fill:none;stroke:black;stroke-width:14.66px;stroke-miterlimit:1.5;"/></g><g transform="matrix(0.623506,0,0,0.684822,156.134,-73.3238)"><path d="M400,270L400,372.665" style="fill:none;stroke:black;stroke-width:14.66px;stroke-miterlimit:1.5;"/></g></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1 @@
<html><body></body></html>

View File

@@ -0,0 +1 @@
<html><body></body></html>

View File

@@ -0,0 +1,10 @@
; @copyright Copyright (C) 2010 Cédric KEIFLIN alias ced1870
; https://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_PAGEBUILDERCK_ACCORDION_XML_NAME="Page Builder CK - Accordion"
PLG_PAGEBUILDERCK_ACCORDION_MENUITEM_TITLE="Accordion"
PLG_PAGEBUILDERCK_ACCORDION_MENUITEM_DESC="Custom text into an accordion"

View File

@@ -0,0 +1,7 @@
; @copyright Copyright (C) 2010 Cédric KEIFLIN alias ced1870
; https://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_PAGEBUILDERCK_ACCORDION_XML_NAME="Page Builder CK - Accordion"

View File

@@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@@ -0,0 +1,9 @@
; @copyright Copyright (C) 2010 Cédric KEIFLIN alias ced1870
; https://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_PAGEBUILDERCK_ACCORDION_XML_NAME="Page Builder CK - Accordéon"
PLG_PAGEBUILDERCK_ACCORDION_MENUITEM_TITLE="Accordéon"
PLG_PAGEBUILDERCK_ACCORDION_MENUITEM_DESC="Accordéon avec contenu personnalisé"

View File

@@ -0,0 +1,7 @@
; @copyright Copyright (C) 2010 Cédric KEIFLIN alias ced1870
; https://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_PAGEBUILDERCK_ACCORDION_XML_NAME="Page Builder CK - Accordéon"

View File

@@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@@ -0,0 +1,209 @@
<?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;
?>
<div class="menustylescustom" data-prefix="accordionicon" data-rule=".ui-accordion-header .pbckicon"></div>
<div id="elementscontainer">
<div class="menulink" tab="tab_blocstyles"><?php echo JText::_('CK_ACCORDION_EDITION'); ?></div>
<div class="tab menustyles ckproperty tab_fullscreen" id="tab_blocstyles">
<?php // echo PagebuilderckHelper::renderEditionButtons(); ?>
<div id="items_edition_list">
</div>
<div onclick="ckAddNewListItem()" class="item_add ckbutton ckbutton-primary"><?php echo JText::_('CK_ADD_ITEM'); ?></div>
<div class="clr"></div>
</div>
<div class="menulink" tab="tab_iconstyles"><?php echo JText::_('CK_ICON'); ?></div>
<div class="tab menustyles ckproperty" id="tab_iconstyles">
<?php echo $this->menustyles->createIconLight('accordionicon') ?>
<?php echo $this->menustyles->createIconSvgLight('icon') ?>
<?php //echo $this->menustyles->createIconOptions('icon') ?>
<?php echo $this->menustyles->createBackground('icon') ?>
<?php echo $this->menustyles->createDimensions('icon', true, true) ?>
<?php echo $this->menustyles->createDecoration('icon') ?>
<?php echo $this->menustyles->createShadow('icon') ?>
<?php echo $this->menustyles->createCustom('icon') ?>
</div>
<div class="menulink" tab="tab_headingaccordionstyles"><?php echo JText::_('CK_ACCORDION_HEADING_STYLE'); ?></div>
<div class="tab menustyles ckproperty" id="tab_headingaccordionstyles">
<?php echo $this->menustyles->createBlocStyles('headingaccordion', 'accordionsck', false, false) ?>
</div>
<div class="menulink" tab="tab_activeheadingaccordionstyles"><?php echo JText::_('CK_ACCORDION_ACTIVE_HEADING_STYLE'); ?></div>
<div class="tab menustyles ckproperty" id="tab_activeheadingaccordionstyles">
<?php echo $this->menustyles->createBlocStyles('activeheadingaccordion', 'accordionsck', false, false) ?>
</div>
<div class="menulink" tab="tab_contentaccordionstyles"><?php echo JText::_('CK_ACCORDION_CONTENT_STYLE'); ?></div>
<div class="tab menustyles ckproperty" id="tab_contentaccordionstyles">
<?php echo $this->menustyles->createBlocStyles('contentaccordion', 'accordionsck', false, false) ?>
</div>
<div class="clr"></div>
</div>
<div class="clr"></div>
<script language="javascript" type="text/javascript">
var focus = $ck('.editfocus');
function ckLoadEditionPopup() {
var noactivetabscss = focus.find('.accordionsck').attr('activetab') === 'false' ? ' ckbutton-warning active' : '';
$ck('#items_edition_list').append('<div><div class="item_setdefault ckbutton'+noactivetabscss+'" onclick="ckSetDefaultEditItem($ck(this).parent())"><span class="icon icon-star"></span> <?php echo JText::_('CK_SET_DEFAULT_CLOSED', true) ?></div></div>');
$ck('.accordionsck .itemtitleck', focus).each(function(i, el) {
// B/C nested addons
var content = $ck('.accordionsck > div').eq(i);
if (content.hasClass('itemcontentck') && content.find('.itemcontentck').length) {
content.removeClass('itemcontentck');
}
var itemedition = ckCreateEditItem(i, $ck('#items_edition_list'), $ck(el).text(), ckContentToEditor($ck('.accordionsck .itemcontentck', focus).eq(i).html()), true, $ck('.accordionsck .itemtitleck .iconck', focus).eq(i).html());
ckMakeEditItemAccordion(itemedition);
ckLoadEditorOnTheFly('item_content_' + i);
ckGetItemIcon(i, '.itemtitleck');
});
$ck('.item_setdefault').eq((parseInt(focus.find('.accordionsck').attr('activetab'))+1)).addClass('ckbutton-warning').addClass('active');
ckMakeEditItemsSortable();
ckFillEditionPopup(focus.attr('id'));
}
/* override the JS function for custom use */
function ckSelectIcon(icon) {
/*var item = $ck('#items_edition_list .ckfieldfocus');
if (! item.length) return;
item.find('.iconck').empty().append(icon);
var focusIcon = item.find('.iconck');
// if svg icon, empty the css class
if (focusIcon.find('svg').length) {
item.find('.item_icon_edition').val('');
}
return focusIcon;*/
return ckSelectIconFromEdition(icon);
}
function ckMakeEditItemAccordion(el) {
$ck(el).accordionck({
header: ".item_toggler",
collapsible: true,
active: false,
heightStyle: "content"
});
}
function ckAddNewListItem() {
// add the element in the accordion
$ck('.accordionsck', focus).append(ckGetNewAccordionItem('Lorem Ipsum ...', '<p>Lorem Ipsum ...</p>'));
$ck('.accordionsck', focus).accordionck( "refresh" );
// add the element for edition
var index = $ck('.accordionsck > .ui-accordion-header', focus).length;
var itemedition = ckCreateEditItem(index, $ck('#items_edition_list'), 'Lorem Ipsum ...', '<p>Lorem Ipsum ...</p>', true);
ckMakeEditItemAccordion(itemedition);
ckLoadEditorOnTheFly('item_content_' + index);
}
function ckGetNewAccordionItem(title, content) {
var html = '<h3><span class="itemtitleck">'+title+'</span></h3>'
+'<div>'
+'<div class="innercontent"></div>'
+'<div class="accordionck itemcontentck">'
+content
+'</div>'
+'<div class="innercontent"></div>';
+'</div>'
return html;
}
function ckBeforeSaveEditionPopup() {
$ck('.item_content_edition').each(function() {
var textID = $ck(this).attr('id');
ckSaveEditorOnTheFly(textID);
// ckRemoveEditorOnTheFly(textID);
});
$ck('#items_edition_list .item_edition:not(.ui-sortable-helper)').each(function(i, el) {
var $el = $ck(el);
$ck('.itemtitleck', focus).eq(i).text($el.find('.item_title_edition').val());
$ck('.itemcontentck', focus).eq(i).html(ckEditorToContent($el.find('.item_content_edition').val()));
if ($el.find('.iconck').html()) $ck('.itemtitleck', focus).eq(i).prepend('<span class="iconck">' + $el.find('.iconck').html() + '</span>');
ckSetIconFromEdition(i, $el, focus, '.itemtitleck');
});
var activetab = false;
$ck('#popup_editionck .item_edition').each(function(i, el) {
if ($ck(el).find('.item_setdefault.active').length) {
activetab = i;
}
// since 2.19.0 add nested addons
if (! $ck('.editfocus > .accordionsck > .ui-accordion-content').eq(i).find('> .innercontent').length) {
var contentArea = $ck('.editfocus > .accordionsck > .ui-accordion-content').eq(i);
contentArea.html('<div class="innercontent"></div><div class="itemcontentck">' + contentArea.html() + '</div><div class="innercontent"></div>');
ckAddEditionForNestedAddons('#<?php echo $id; ?>');
}
});
focus.find('.accordionsck').attr('activetab', activetab).accordionck("refresh");
var vPos = $ck('#iconicon-position button.active').attr('data-position');
$ck('.editfocus .itemtitleck .pbckicon').css('vertical-align', vPos);
}
function ckSaveInlineEditionPopup() {
ckBeforeSaveEditionPopup();
}
function ckSetDefaultEditItem(item) {
$ck('.item_setdefault').removeClass('ckbutton-warning').removeClass('active');
item.find('.item_setdefault').addClass('ckbutton-warning').addClass('active');
}
function ckBeforeCloseEditionPopup() {
$ck('.item_content_edition').each(function() {
ckRemoveEditorOnTheFly($ck(this).attr('id'));
});
}
function ckBeforeDeleteEditItem(item) {
var index_item = item.index('.item_edition');
ckRemoveEditorOnTheFly(item.find('.item_content_edition').attr('id'));
$ck('.accordionsck > .ui-accordion-header', focus).eq(index_item).find('+ .ui-accordion-content').remove();
$ck('.accordionsck > .ui-accordion-header', focus).eq(index_item).remove();
$ck('.accordionsck', focus).accordionck("refresh");
}
function ckUpdatePreviewArea() {
// var focus = $ck('.editfocus');
// $ck('#items_edition_list .item_edition:not(.ui-sortable-helper)').each(function(i, el) {
// $ck('.itemtitleck', focus).eq(i).text($ck(el).find('.item_title_edition').val());
// $ck('.itemcontentck', focus).eq(i).html($ck(el).find('.item_content_edition').val());
// });
}
function ckMakeEditItemsSortable() {
$ck( "#items_edition_list" ).sortable({
items: ".item_edition",
helper: "clone",
// axis: "y",
handle: "> .item_move",
forcePlaceholderSize: true,
tolerance: "pointer",
placeholder: "placeholderck",
// zIndex: 9999,
start: function(e, ui){
$ck(this).find('.item_content_edition').each(function(){
if (tinymce.get($ck(this).attr('id'))) {
ckRemoveEditorOnTheFly($ck(this).attr('id'));
}
});
},
update: function(e, ui) {
$ck(this).find('.item_content_edition:not(.ui-sortable-helper)').each(function(){
ckLoadEditorOnTheFly($ck(this).attr('id'));
});
ckUpdatePreviewArea();
$ck( "#<?php echo $id; ?>_preview_accordion" ).accordionck("refresh");
}
});
}
ckInitIconPosition('.editfocus .itemtitleck .pbckicon', '#iconicon-position button');
</script>

View File

@@ -0,0 +1 @@
<html><body></body></html>