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,240 @@
/* Mobile Menu CK - https://www.joomlack.fr */
/* Automatic styles */
.mobilemenuck-bar {display:none;position:relative;left:0;top:0;right:0;z-index:100;}
.mobilemenuck-bar-title {display: block;}
.mobilemenuck-bar-button {cursor:pointer;box-sizing: border-box;position:absolute; top: 0; right: 0;line-height:0.8em;font-family:Segoe UI;text-align: center;}
.mobilemenuck {box-sizing: border-box;width: 100%;}
.mobilemenuck-topbar {position:relative;}
.mobilemenuck-title {display: block;}
.mobilemenuck-button {cursor:pointer;box-sizing: border-box;position:absolute; top: 0; right: 0;line-height:0.8em;font-family:Segoe UI;text-align: center;}
.mobilemenuck a {display:block;text-decoration: none;}
.mobilemenuck a:hover {text-decoration: none;}
.mobilemenuck .mobilemenuck-item > div {position:relative;}
/* for accordion */
.mobilemenuck-togglericon:after {cursor:pointer;text-align:center;display:block;position: absolute;right: 0;top: 0;content:"+";}
.mobilemenuck .open .mobilemenuck-togglericon:after {content:"-";}
.mobilemenuck-lock-button.mobilemenuck-button {right:45px}
.mobilemenuck-lock-button.mobilemenuck-button svg {max-height:50%;}
.mobilemenuck-lock-button.mobilemenuck-button::after {display: block;content: "";height: 100%;width: 100%;z-index: 1;position: absolute;top: 0;left: 0;}
.mobilemenuck[data-display="flyout"] {overflow: initial !important;}
.mobilemenuck[data-display="flyout"] .level1 + .mobilemenuck-submenu {position:absolute;top:0;left:auto;display:none;height:100vh;left:100%;}
.mobilemenuck[data-display="flyout"] .level2 + .mobilemenuck-submenu {position:absolute;top:0;left:auto;display:none;height:100vh;left:100%;}
.mobilemenuck[data-display="flyout"][data-effect*="slideright"] .level1 + .mobilemenuck-submenu {right:100%;left:auto;}
.mobilemenuck[data-display="flyout"][data-effect*="slideright"] .level2 + .mobilemenuck-submenu {right:100%;left:auto;}
@media screen and (max-width: 640px) {
.mobilemenuck[data-display="flyout"] .level1 + .mobilemenuck-submenu {position:static;width: initial !important;height: initial;}
}
@media screen and (max-width: 1000px) {
.mobilemenuck[data-display="flyout"] .level2 + .mobilemenuck-submenu {position:static;width: initial !important;height: initial;}
}
.mobilemenuck-backbutton {
cursor: pointer;
}
.mobilemenuck-backbutton:hover {
opacity: 0.7;
}
|ID|[menu-bar] {
background: #464646;
color: #FFFFFF;
font-weight: bold;
text-indent: 20px;
line-height: 43px;
font-size: 20px;
}
|ID|[menu-bar] a {
color: #FFFFFF;
font-weight: bold;
text-indent: 20px;
line-height: 43px;
font-size: 20px;
}
|ID|[menu-bar-button] {
background: #333333;
height: 43px;
width: 43px;
color: #FFFFFF;
padding-top: 8px;
font-size: 1.8em;
}
|ID|[menu-bar-button] a {
color: #FFFFFF;
font-size: 1.8em;
}
|ID|[menu] {
background: #464646;
color: #FFFFFF;
padding-bottom: 5px;
font-weight: bold;
font-size: 1.2em;
}
|ID|[menu] a {
color: #FFFFFF;
font-weight: bold;
font-size: 1.2em;
}
|ID|[menu-topbar] {
background: #464646;
height: 43px;
text-indent: 20px;
line-height: 43px;
font-size: 20px;
}
|ID|[menu-topbar] a {
text-indent: 20px;
line-height: 43px;
font-size: 20px;
}
|ID|[menu-topbar-button] {
min-height: 35px;
height: 100%;
width: 45px;
line-height: 35px;
font-size: 1.8em;
}
|ID|[menu-topbar-button] a {
line-height: 35px;
font-size: 1.8em;
}
|ID|[level1menuitem] {
background: #027EA6;
-moz-border-radius: 5px 5px 5px 5px;
-o-border-radius: 5px 5px 5px 5px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
color: #FFFFFF;
margin-top: 4px;
margin-right: 4px;
margin-bottom: 4px;
margin-left: 4px;
padding-left: 15px;
line-height: 35px;
}
|ID|[level1menuitem] a {
color: #FFFFFF;
line-height: 35px;
}
|ID|[level1menuitemhover] {
background: #008bb8;
}
|ID|[level2menuitem] {
background: #FFFFFF;
-moz-border-radius: 5px 5px 5px 5px;
-o-border-radius: 5px 5px 5px 5px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
color: #000000;
margin-top: 4px;
margin-right: 4px;
margin-bottom: 4px;
margin-left: 4px;
padding-left: 25px;
line-height: 35px;
}
|ID|[level2menuitem] a {
color: #000000;
line-height: 35px;
}
|ID|[level2menuitemhover] {
background: #f0f0f0;
}
|ID|[level3menuitem] {
background: #689332;
-moz-border-radius: 5px 5px 5px 5px;
-o-border-radius: 5px 5px 5px 5px;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
color: #FFFFFF;
margin-top: 4px;
margin-right: 4px;
margin-bottom: 4px;
margin-left: 4px;
padding-left: 35px;
line-height: 35px;
}
|ID|[level3menuitem] a {
color: #FFFFFF;
line-height: 35px;
}
|ID|[level3menuitemhover] {
background: #72a137;
}
|ID|[togglericon] {
background: #000000;
background: rgba(0,0,0,0.25);
-pie-background: rgba(0,0,0,0.25);
-moz-border-radius: 0px 5px 5px 0px;
-o-border-radius: 0px 5px 5px 0px;
-webkit-border-radius: 0px 5px 5px 0px;
border-radius: 0px 5px 5px 0px;
min-height: 35px;
height: 100%;
width: 35px;
padding-right: 5px;
padding-left: 5px;
line-height: 35px;
font-size: 1.7em;
}
|ID|[togglericon] a {
line-height: 35px;
font-size: 1.7em;
}
.mobilemaximenuck div span.descck {
padding-left: 10px;
font-size: 12px;
}
|ID| .mobilemenuck-item-counter {
display: inline-block;
margin: 0 5px;
padding: 10px;
font-size: 12px;
line-height: 0;
background: rgba(0,0,0,0.3);
color: #eee;
border-radius: 10px;
height: 20px;
transform: translate(10px,-3px);
box-sizing: border-box;
}
|ID| + #mobilemenuck-overlay {
position: fixed;
top: 0;
background: #000;
opacity: 0.3;
left: 0;
right: 0;
bottom: 0;
z-index: 9;
}
|ID| .mobilemenuck-backbutton svg {
width: 14px;
fill: #fff;
position: relative;
left: -5px;
top: -2px;
}

View File

@@ -0,0 +1,10 @@
<?php
// set variables
define('MOBILEMENUCK_LOADED', 1);
define('MOBILEMENUCK_PLATFORM', 'joomla');
define('MOBILEMENUCK_PATH', dirname(__FILE__));
define('MOBILEMENUCK_MEDIA_URI', JUri::root(true) . '/media/com_mobilemenuck');
define('MOBILEMENUCK_PLUGIN_MEDIA_URI', JUri::root(true) . '/media/plg_system_mobilemenuck');
define('MOBILEMENUCK_SITE_ROOT', JPATH_ROOT);
define('MOBILEMENUCK_URI_ROOT', JUri::root(true));
define('MOBILEMENUCK_URI_BASE', JUri::base(true));

View File

@@ -0,0 +1,77 @@
<?php
/**
* @copyright Copyright (C) 2017 Cedric KEIFLIN alias ced1870
* http://www.joomlack.fr
* @license GNU/GPL
* */
defined('JPATH_PLATFORM') or die;
if (!defined('MOBILEMENUCK_MEDIA_URI'))
{
define('MOBILEMENUCK_MEDIA_URI', JUri::root(true) . '/media/com_mobilemenuck');
}
JText::script('MOD_MOBILEMENUCK_SAVE_CLOSE');
class JFormFieldCkmoduleselect extends JFormField
{
protected $type = 'ckmoduleselect';
private $activate = true;
function __construct($form = null) {
if (! \Mobilemenuck\Helper::checkIsProVersion()) $this->activate = false;
parent::__construct($form);
}
protected function getInput() {
if (! $this->activate) {
$html = \Mobilemenuck\Helper::renderProMessage();
return $html;
}
$doc = JFactory::getDocument();
$doc->addStylesheet(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.css');
$doc->addScript(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.js');
// Initialize some field attributes.
$js = 'function ckMobilemenuSelectModule(id, name, close) {
if (!close && close != false) close = true;
jQuery("#' . $this->id . '").val(id).trigger(\'change\');
jQuery("#' . $this->id . 'name").val(name);
if (close) CKBox.close();
}
function ckMobilemenuUpdateModule(nothing, id, name) {
ckMobilemenuSelectModule(id, name, false);
}';
$doc->addScriptDeclaration($js);
$icon = $this->element['icon'];
$suffix = $this->element['suffix'];
$size = $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
$maxLength = $this->element['maxlength'] ? ' maxlength="' . (int) $this->element['maxlength'] . '"' : '';
$class = $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : 'class="form-control"';
$readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : '';
$disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : '';
$defautlwidth = $suffix ? '128px' : '150px';
$styles = ' style="width:'.$defautlwidth.';'.$this->element['styles'].'"';
$module = \Mobilemenuck\Helper::getModuleById($this->value);
$title = isset($module->title) ? $module->title : '';
// Initialize JavaScript field attributes.
$onchange = $this->element['onchange'] ? ' onchange="' . (string) $this->element['onchange'] . '"' : '';
$html = $icon ? '<div style="display:inline-block;vertical-align:top;margin-top:4px;width:20px;"><img src="' . MOBILEMENUCK_MEDIA_URI . '/images/' . $icon . '" style="margin-right:5px;" /></div>' : '';
$html .= '<div class="btn-group">';
$html .= '<input type="hidden" name="' . $this->name . '" id="' . $this->id . '"' . ' value="'
. htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8') . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<input type="text" disabled name="' . $this->name . 'name" id="' . $this->id . 'name"' . ' value="'
. htmlspecialchars($title) . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<div class="btn btn-outline-secondary" onclick="CKBox.open({url: \'index.php?option=com_mobilemenuck&view=items&tmpl=component&layout=select&returnFunc=ckMobilemenuSelectModule\'})"><i class="fas fa-mouse-pointer"></i> ' . JText::_('PLG_MOBILEMENUCK_SELECT') . '</div>';
// $html .= '<div class="btn btn-secondary" onclick="if (jQuery(\'#' . $this->id . '\').val()) {CKBox.open({url: \'index.php?option=com_mobilemenuck&view=style&tmpl=component&modal=1&id=\'+jQuery(\'#' . $this->id . '\').val()+\'\'}) } else { alert(\'' . JText::_('PLG_MOBILEMENUCK_SELECT_FIRST', true) . '\');}">' . JText::_('PLG_MOBILEMENUCK_EDIT', true) . '</div>';
$html .= '<div class="btn btn-outline-secondary" onclick="jQuery(\'#' . $this->id . '\').val(\'\').trigger(\'change\');jQuery(\'#' . $this->id . 'name\').val(\'\');"><i class="fas fa-times"></i> ' . JText::_('PLG_MOBILEMENUCK_CLEAR', true) . '</div>';
$html .= '</div>';
return $html;
}
}

View File

@@ -0,0 +1,77 @@
<?php
/**
* @copyright Copyright (C) 2017 Cedric KEIFLIN alias ced1870
* http://www.joomlack.fr
* @license GNU/GPL
* */
defined('JPATH_PLATFORM') or die;
if (!defined('MOBILEMENUCK_MEDIA_URI'))
{
define('MOBILEMENUCK_MEDIA_URI', JUri::root(true) . '/media/com_mobilemenuck');
}
JText::script('MOD_MOBILEMENUCK_SAVE_CLOSE');
class JFormFieldCkstyleselect extends JFormField
{
protected $type = 'ckstyleselect';
private $activate = true;
function __construct($form = null) {
require_once(MOBILEMENUCK_PATH . '/helpers/helper.php');
if (! \Mobilemenuck\Helper::checkIsProVersion()) $this->activate = false;
parent::__construct($form);
}
protected function getInput() {
if (! $this->activate) {
$html = \Mobilemenuck\Helper::renderProMessage();
return $html;
}
$doc = JFactory::getDocument();
$doc->addStylesheet(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.css');
$doc->addScript(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.js');
// Initialize some field attributes.
$js = 'function ckMobilemenuSelectStyle(id, name, close) {
if (!close && close != false) close = true;
jQuery("#' . $this->id . '").val(id);
jQuery("#' . $this->id . 'name").val(name);
if (close) CKBox.close();
}
function ckMobilemenuUpdateStyle(nothing, id, name) {
ckMobilemenuSelectStyle(id, name, false);
}';
$doc->addScriptDeclaration($js);
$icon = $this->element['icon'];
$suffix = $this->element['suffix'];
$size = $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
$maxLength = $this->element['maxlength'] ? ' maxlength="' . (int) $this->element['maxlength'] . '"' : '';
$class = $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : 'class="form-control"';
$readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : '';
$disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : '';
$defautlwidth = $suffix ? '128px' : '150px';
$styles = ' style="width:'.$defautlwidth.';'.$this->element['styles'].'"';
$styleName = \Mobilemenuck\Helper::getStyleNameById($this->value);
// Initialize JavaScript field attributes.
$onchange = $this->element['onchange'] ? ' onchange="' . (string) $this->element['onchange'] . '"' : '';
$html = $icon ? '<div style="display:inline-block;vertical-align:top;margin-top:4px;width:20px;"><img src="' . MOBILEMENUCK_MEDIA_URI . '/images/' . $icon . '" style="margin-right:5px;" /></div>' : '';
$html .= '<div class="btn-group">';
$html .= '<input type="hidden" name="' . $this->name . '" id="' . $this->id . '"' . ' value="'
. htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8') . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<input type="text" disabled name="' . $this->name . 'name" id="' . $this->id . 'name"' . ' value="'
. htmlspecialchars($styleName) . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<div class="btn btn-primary" onclick="CKBox.open({url: \'index.php?option=com_mobilemenuck&view=styles&tmpl=component&modal=1&returnFunc=ckMobilemenuSelectStyle\'})">' . JText::_('PLG_MOBILEMENUCK_SELECT') . '</div>';
$html .= '<div class="btn btn-secondary" onclick="if (jQuery(\'#' . $this->id . '\').val()) {CKBox.open({url: \'index.php?option=com_mobilemenuck&view=style&tmpl=component&modal=1&id=\'+jQuery(\'#' . $this->id . '\').val()+\'\'}) } else { alert(\'' . JText::_('PLG_MOBILEMENUCK_SELECT_FIRST', true) . '\');}">' . JText::_('PLG_MOBILEMENUCK_EDIT', true) . '</div>';
$html .= '<div class="btn btn-light" onclick="jQuery(\'#' . $this->id . '\').val(\'\');jQuery(\'#' . $this->id . 'name\').val(\'\');">' . JText::_('PLG_MOBILEMENUCK_CLEAR', true) . '</div>';
$html .= '</div>';
return $html;
}
}

View File

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

View File

@@ -0,0 +1,77 @@
<?php
/**
* @copyright Copyright (C) 2017 Cedric KEIFLIN alias ced1870
* http://www.joomlack.fr
* @license GNU/GPL
* */
defined('JPATH_PLATFORM') or die;
if (!defined('MOBILEMENUCK_MEDIA_URI'))
{
define('MOBILEMENUCK_MEDIA_URI', JUri::root(true) . '/media/com_mobilemenuck');
}
JText::script('MOD_MOBILEMENUCK_SAVE_CLOSE');
class JFormFieldMobilemenuckicon extends JFormField
{
protected $type = 'mobilemenuckicon';
private $activate = true;
function __construct($form = null) {
require_once(MOBILEMENUCK_PATH . '/helpers/helper.php');
if (! \Mobilemenuck\Helper::checkIsProVersion()) $this->activate = false;
parent::__construct($form);
}
protected function getInput() {
if (! $this->activate) {
$html = \Mobilemenuck\Helper::renderProMessage();
return $html;
}
$doc = JFactory::getDocument();
$doc->addStylesheet(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.css');
$doc->addScript(MOBILEMENUCK_MEDIA_URI . '/assets/ckbox.js');
// Initialize some field attributes.
$js = 'function ckMobilemenuSelectStyle(id, name, close) {
if (!close && close != false) close = true;
jQuery("#' . $this->id . '").val(id);
jQuery("#' . $this->id . 'name").val(name);
if (close) CKBox.close();
}
function ckMobilemenuUpdateStyle(nothing, id, name) {
ckMobilemenuSelectStyle(id, name, false);
}';
$doc->addScriptDeclaration($js);
$icon = $this->element['icon'];
$suffix = $this->element['suffix'];
$size = $this->element['size'] ? ' size="' . (int) $this->element['size'] . '"' : '';
$maxLength = $this->element['maxlength'] ? ' maxlength="' . (int) $this->element['maxlength'] . '"' : '';
$class = $this->element['class'] ? ' class="' . (string) $this->element['class'] . '"' : 'class="form-control"';
$readonly = ((string) $this->element['readonly'] == 'true') ? ' readonly="readonly"' : '';
$disabled = ((string) $this->element['disabled'] == 'true') ? ' disabled="disabled"' : '';
$defautlwidth = $suffix ? '128px' : '150px';
$styles = ' style="width:'.$defautlwidth.';'.$this->element['styles'].'"';
$styleName = \Mobilemenuck\Helper::getStyleNameById($this->value);
// Initialize JavaScript field attributes.
$onchange = $this->element['onchange'] ? ' onchange="' . (string) $this->element['onchange'] . '"' : '';
$html = $icon ? '<div style="display:inline-block;vertical-align:top;margin-top:4px;width:20px;"><img src="' . MOBILEMENUCK_MEDIA_URI . '/images/' . $icon . '" style="margin-right:5px;" /></div>' : '';
$html .= '<div class="btn-group">';
$html .= '<input type="hidden" name="' . $this->name . '" id="' . $this->id . '"' . ' value="'
. htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8') . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<input type="text" disabled name="' . $this->name . 'name" id="' . $this->id . 'name"' . ' value="'
. htmlspecialchars($styleName) . '"' . $class . $size . $disabled . $readonly . $onchange . $maxLength . $styles . '/>';
$html .= '<div class="btn btn-outline-secondary" onclick="CKBox.open({url: \'index.php?option=com_mobilemenuck&view=styles&tmpl=component&modal=1&returnFunc=ckMobilemenuSelectStyle\'})"><i class="fas fa-mouse-pointer "></i> ' . JText::_('PLG_MOBILEMENUCK_SELECT') . '</div>';
$html .= '<div class="btn btn-outline-secondary" onclick="if (jQuery(\'#' . $this->id . '\').val()) {CKBox.open({url: \'index.php?option=com_mobilemenuck&view=style&tmpl=component&modal=1&id=\'+jQuery(\'#' . $this->id . '\').val()+\'\'}) } else { alert(\'' . JText::_('PLG_MOBILEMENUCK_SELECT_FIRST', true) . '\');}"><i class="fas fa-edit"></i> ' . JText::_('PLG_MOBILEMENUCK_EDIT', true) . '</div>';
$html .= '<div class="btn btn-outline-secondary" onclick="jQuery(\'#' . $this->id . '\').val(\'\');jQuery(\'#' . $this->id . 'name\').val(\'\');"><i class="fas fa-times"></i> ' . JText::_('PLG_MOBILEMENUCK_CLEAR', true) . '</div>';
$html .= '</div>';
return $html;
}
}

View File

@@ -0,0 +1,63 @@
<?php
/**
* @copyright Copyright (C) 2017 Cedric KEIFLIN alias ced1870
* http://www.joomlack.fr
* @license GNU/GPL
* */
defined('JPATH_PLATFORM') or die;
class JFormFieldMobilemenuckinfo extends JFormField
{
/**
* The form field type.
*
* @var string
*
*/
protected $type = 'mobilemenuckinfo';
/**
* Method to get the field input markup.
*
* @return string The field input markup.
*
*/
protected function getLabel()
{
return '';
}
/**
* Method to get the field label markup.
*
* @return string The field label markup.
*
*/
protected function getInput()
{
$doc = JFactory::getDocument();
$styles = '.mobilemenuck-info {position:relative;background:#efefef;border: none;border-radius: px;color: #333;font-weight: normal;line-height: 24px;padding: 5px 5px 5px 35px;margin: 3px 0;text-align: left;text-decoration: none;height:100%;}
.mobilemenuck-info .mobilemenuck-info-icon {
margin: 0 10px 0 0;
padding: 3px 5px;
background: rgba(0, 0, 0, 0.1);
position: absolute;
top: 0;
bottom: 0;
left: 0;
line-height: 25px;
width: 30px;
height: 100%;
text-align: center;}
.mobilemenuck-info-icon svg {
max-width: 25px;
max-height: 20px;
vertical-align: bottom;
}
.control-label:empty, .controls:empty {display: none;}
.control-label:empty + .controls {margin: 0;}
';
$doc->addStyleDeclaration($styles);
}
}

View File

@@ -0,0 +1,32 @@
<?php
/**
* @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870
* https://www.joomlack.fr
* @license GNU/GPL
* */
// no direct access
defined('_JEXEC') or die('Restricted access');
class JFormFieldMobilemenuckonlypro extends JFormField {
protected $type = 'mobilemenuckonlypro';
protected function getLabel() {
return '';
}
protected function getInput() {
// TODO : check si composant est installé ou pas si oui pas de message
$isPro = file_exists(JPATH_ROOT . '/administrator/components/com_mobilemenuck/mobilemenuck.php');
if ($isPro) return;
$icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512"><!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"/></svg>';
$html = '<div class="mobilemenuck-info">'
. '<div class="mobilemenuck-info-icon">' . $icon . '</div>'
. '<a href="https://www.joomlack.fr/en/joomla-extensions/mobile-menu-ck" target="_blank">' . JText::_('PLG_MOBILEMENUCK_PRO_ONLY') . '</a></div>';
return $html;
}
}

View File

@@ -0,0 +1,59 @@
<?php
/**
* @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870
* https://www.joomlack.fr
* @license GNU/GPL
* */
// no direct access
defined('_JEXEC') or die('Restricted access');
class JFormFieldMobilemenuckspacer extends JFormField {
protected $type = 'mobilemenuckspacer';
protected function getLabel() {
return '';
}
protected function getInput() {
$html = array();
$class = $this->element['class'] ? (string) $this->element['class'] : '';
$style = $this->element['style'] ? $this->element['style'] : '';
if ($style == 'title') {
$doc = JFactory::getDocument();
$styles = '.ckinfo.cktitle {
background:#666;
color: #eee;
text-transform: uppercase;
font-weight: normal;
line-height: 24px;
padding: 8px 5px 8px 35px;
margin: 3px 0;
text-align: left;
text-decoration: none;
border-radius: 3px;
}
';
$doc->addStyleDeclaration($styles);
}
if ((string) $this->element['hr'] == 'true') {
$html[] = '<hr class="' . $class . '" />';
} else {
$label = '';
// Get the label text from the XML element, defaulting to the element name.
$text = $this->element['label'] ? (string) $this->element['label'] : (string) $this->element['name'];
$text = $this->translateLabel ? JText::_($text) : $text;
// set the icon
$icon = $this->element['icon'] ? $this->element['icon'] : 'info';
$html[] = '<div class="ckinfo' . ($style == 'title' ? ' cktitle' : '') . '">' . ($style == 'title' ? '' : '<i class="fas fa-' . $icon . '"></i>') . $text . '</div>';
}
return implode('', $html);
}
}

View File

@@ -0,0 +1,30 @@
<?php
/**
* @copyright Copyright (C) 2011 Cedric KEIFLIN alias ced1870
* https://www.joomlack.fr
* @license GNU/GPL
* */
// no direct access
defined('_JEXEC') or die('Restricted access');
class JFormFieldMobilemenuckvideo extends JFormField {
protected $type = 'mobilemenuckvideo';
protected function getLabel() {
return '';
}
protected function getInput() {
$url = $this->element['url'] ? (string) $this->element['url'] : '';
if (! $url) return '';
$icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) --><path d="M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"/></svg>';
$html = '<div class="mobilemenuck-info">'
. '<div class="mobilemenuck-info-icon">' . $icon . '</div>'
. '<a target="_blank" href="' . $url . '" target="_blank">' . JText::_('PLG_MOBILEMENUCK_VIDEO_TUTORIAL') . '</a></div>';
return $html;
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,36 @@
<?php
/**
* @name Mobile Menu CK
* @copyright Copyright (C) 2018. 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
*/
/*
* Global method that can be called easily
*/
function loadMobileMenuCK($selector, $options = array()) {
return \Mobilemenuck\Menu::load($selector, $options);
}
/*
* Global method that can be called easily, direct injection
*/
function loadMobileMenuCKInline($selector, $options = array()) {
return \Mobilemenuck\Menu::load($selector, $options, true);
}
/*
* Global method that can be called easily
*/
function loadThemeMobileMenuCK($id, $themeid = null) {
return \Mobilemenuck\Menu::loadTheme($id, false, $themeid);
}
/*
* Global method that can be called easily
*/
function loadThemeMobileMenuCKInline($id, $themeid = null) {
return \Mobilemenuck\Menu::loadTheme($id, true, $themeid);
}

View File

@@ -0,0 +1,226 @@
<?php
/**
* @name Mobile Menu CK
* @copyright Copyright (C) 2018. 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
*/
namespace Mobilemenuck;
// No direct access
defined('MOBILEMENUCK_LOADED') or die;
class Helper
{
/**
* Render a html message
*
* @return string
*
*/
public static function renderProMessage() {
$html = '<div><a href="https://www.joomlack.fr/en/joomla-extensions/mobile-menu-ck" target="_blank">Not available in the free version</a></div>';
return $html;
}
/**
* List the replacement between the tags and the real final CSS rules
*/
public static function getCssReplacement() {
$cssreplacements = Array(
'[menu-bar]' => ' .mobilemenuck-bar-title'
,'[menu-bar-button]' => ' .mobilemenuck-bar-button'
,'[menu]' => '.mobilemenuck'
,'[menu-topbar]' => ' .mobilemenuck-title'
,'[menu-topbar-button]' => ' .mobilemenuck-button'
,'[level1menuitem]' => ' .mobilemenuck-item > .level1'
,'[level1menuitemhover] a' => ' .mobilemenuck-item > .level1:hover a, |ID| .mobilemenuck-item > .level1.open a'
,'[level1menuitemhover]' => ' .mobilemenuck-item > .level1:hover, |ID| .mobilemenuck-item > .level1.open'
,'[level1menuitemactive]' => ' .mobilemenuck-item > .level1.active'
,'[level1submenu]' => ' .mobilemenuck-item > .level1 + .mobilemenuck-submenu'
,'[level2menuitem]' => ' .mobilemenuck-item > .level2'
,'[level2menuitemhover] a' => ' .mobilemenuck-item > .level2:hover a, |ID| .mobilemenuck-item > .level2.open a'
,'[level2menuitemhover]' => ' .mobilemenuck-item > .level2:hover, |ID| .mobilemenuck-item > .level2.open'
,'[level2menuitemactive]' => ' .mobilemenuck-item > .level2.active'
,'[level2submenu]' => ' .mobilemenuck-item > .level2 + .mobilemenuck-submenu'
,'[level3menuitem]' => ' .level2 + .mobilemenuck-submenu .mobilemenuck-item > div'
,'[level3menuitemhover] a' => ' .level2 + .mobilemenuck-submenu .mobilemenuck-item > div:hover a, |ID| .mobilemenuck-item > .level2 + .mobilemenuck-submenu .mobilemenuck-item > div.open a'
,'[level3menuitemhover]' => ' .level2 + .mobilemenuck-submenu .mobilemenuck-item > div:hover, |ID| .mobilemenuck-item > .level2 + .mobilemenuck-submenu .mobilemenuck-item > div.open'
,'[level3menuitemactive]' => ' .level2 + .mobilemenuck-submenu .mobilemenuck-item > div.active'
,'[level3submenu]' => ' .mobilemenuck-item > .level2 .mobilemenuck-submenu'
,'[togglericon]' => ' .mobilemenuck-togglericon:after'
,'[PRESETS_URI]' => MOBILEMENUCK_MEDIA_URI . '/presets'
);
return $cssreplacements;
}
/**
* Do the replacement between the tags and the real final CSS rules
*/
public static function makeCssReplacement(&$css) {
$cssreplacementlist = self::getCssReplacement();
foreach ($cssreplacementlist as $tag => $rep) {
$css = str_replace($tag, $rep, $css);
}
}
/**
* Get the name of the style
*/
public static function getStyleNameById($id) {
if (! $id) return '';
// Create a new query object.
$db = \JFactory::getDbo();
$query = $db->getQuery(true);
// Select the required fields from the table.
$query->select('a.name');
$query->from($db->quoteName('#__mobilemenuck_styles') . ' AS a');
$query->where('(a.state IN (0, 1))');
$query->where('a.id = ' . (int)$id);
// Reset the query using our newly populated query object.
$db->setQuery($query);
// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$result = $db->loadResult();
return $result;
}
/**
* Get the name of the style
*/
public static function getStyleById($id, $select = '*', $type = 'result') {
if (! $id) return '';
// Create a new query object.
$db = \JFactory::getDbo();
$query = $db->getQuery(true);
// Select the required fields from the table.
$query->select($select);
$query->from($db->quoteName('#__mobilemenuck_styles') . ' AS a');
$query->where('(a.state IN (0, 1))');
$query->where('a.id = ' . (int)$id);
// Reset the query using our newly populated query object.
$db->setQuery($query);
switch($type) {
default :
case "result" :
$result = $db->loadResult();
break;
case "object" :
$result = $db->loadObject();
break;
}
return $result;
}
/**
* Get the name of the style
*/
public static function getStyles($select = '*') {
// Create a new query object.
$db = \JFactory::getDbo();
$query = $db->getQuery(true);
// Select the required fields from the table.
$query->select($select);
$query->from($db->quoteName('#__mobilemenuck_styles') . ' AS a');
$query->where('(a.state IN (0, 1))');
// Reset the query using our newly populated query object.
$db->setQuery($query);
$result = $db->loadObjectList();
return $result;
}
/**
* Get the name of the style
*/
public static function getModuleById($id, $select = '*') {
if (! $id) return '';
// Create a new query object.
$db = \JFactory::getDbo();
$query = $db->getQuery(true);
// Select the required fields from the table.
$query->select($select);
$query->from($db->quoteName('#__modules') . ' AS a');
// $query->where('(a.published IN (0, 1))');
$query->where('a.id = ' . (int)$id);
// Reset the query using our newly populated query object.
$db->setQuery($query);
// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$result = $db->loadObject();
return $result;
}
/**
* Look if the pro version is installed
*
* @return boolean
*/
public static function checkIsProVersion() {
return self::searchTable('mobilemenuck_styles') && file_exists(JPATH_ROOT . '/administrator/components/com_mobilemenuck/mobilemenuck.php');
}
/**
* Look if the table exists, if not then create it
*
* @param type $tableName
* @return boolean
*/
private static function searchTable($tableName) {
$db = \JFactory::getDbo();
$tablesList = $db->getTableList();
$tableExists = in_array($db->getPrefix() . $tableName, $tablesList);
return $tableExists;
}
public static function createIdForModule($module) {
if ($module->module == 'mod_maximenuck') {
$params = new \JRegistry($module->params);
if ($params->get('menuid', '') === '' || is_numeric($params->get('menuid', ''))) {
$id = 'maximenuck' . $module->id;
} else {
$id = $params->get('menuid', '');
}
} else if ($module->module == 'mod_accordeonmenuck') {
$params = new \JRegistry($module->params);
if ($params->get('menuid', '') === '' || is_numeric($params->get('menuid', ''))) {
$id = 'accordeonck' . $module->id;
} else {
$id = $params->get('menuid', '');
}
} else {
$id = 'mobilemenuck-' . $module->id;
}
return $id;
}
public static function getLayoutCss() {
$doc = \JFactory::getDocument();
$overrideSrc = JPATH_ROOT . '/templates/' . $doc->template . '/css/mobilemenuck.css';
$overrideSrc2 = JPATH_ROOT . '/media/templates/site/' . $template . '/css/mobilemenuck.css';
if (file_exists($overrideSrc)) {
$layoutcss = file_get_contents($overrideSrc);
} else if (file_exists($overrideSrc2)) {
$layoutcss = file_get_contents($overrideSrc2);
} else {
$layoutcss = file_get_contents(MOBILEMENUCK_PATH . '/default.txt');
}
return $layoutcss;
}
}

View File

@@ -0,0 +1,50 @@
<?php
/**
* @name Mobile Menu CK
* @copyright Copyright (C) 2018. 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
*/
namespace Mobilemenuck;
// No direct access
defined('MOBILEMENUCK_LOADED') or die;
class CKLoader
{
public static function loadScriptDeclaration($js) {
$doc = \JFactory::getDocument();
$doc->addScriptDeclaration($js);
}
public static function loadScriptDeclarationInline($js) {
echo '<script>' . $js . '</script>';
}
public static function loadScript($file) {
$doc = \JFactory::getDocument();
$doc->addScript($file);
}
public static function loadScriptInline($file) {
echo '<script src="' . $file . '"></script>';
}
public static function loadStyleDeclaration($css) {
$doc = \JFactory::getDocument();
$doc->addStyleDeclaration($css);
}
public static function loadStyleDeclarationInline($css) {
echo '<style>' . $css . '</style>';
}
public static function loadStylesheet($file) {
$doc = \JFactory::getDocument();
$doc->addStylesheet($file);
}
public static function loadStylesheetInline($file) {
echo '<link href="' . $file . '"" rel="stylesheet" />';
}
}

View File

@@ -0,0 +1,215 @@
<?php
/**
* @name Mobile Menu CK
* @copyright Copyright (C) 2018. 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
*/
namespace Mobilemenuck;
// No direct access
defined('MOBILEMENUCK_LOADED') or die;
class Menu
{
/**
* Create the menu, call JS and CSS
*
* @return string the mobile menu ID
*
*/
public static function load($selector, $options = array(), $inline = false) {
require_once(MOBILEMENUCK_PLATFORM . '/loader.php');
require_once('Mobile_Detect.php');
// loads the language files
$lang = \JFactory::getLanguage();
$lang->load('plg_system_mobilemenuck', JPATH_SITE . '/plugins/system/mobilemenuck', $lang->getTag(), false);
$lang->load('plg_system_mobilemenuck', JPATH_ADMINISTRATOR, $lang->getTag(), false);
// create a unique ID for the menu
$menuid = 'mobilemenuck-' . (int) (microtime(true) * 100);
$defaults = self::getDefaultOptions();
$defaults['menuid'] = $menuid; // unique text identifier
$options = array_merge($defaults, $options);
// set the text for the menu bar
switch ($options['showmobilemenutext']) {
case 'none':
$options['mobilemenutext'] = '&nbsp;';
break;
case 'default':
default:
$options['mobilemenutext'] = \JText::_('PLG_MOBILEMENUCK_MENU');
break;
case 'custom':
$options['mobilemenutext'] = addslashes($options['mobilemenutext']);
break;
}
// B/C for old logo position option
if ((int)$options['showlogo'] > 0 && !isset($options['logo_where'])) {
$options['logo_where'] = array($options['showlogo']);
}
\JHTML::_("jquery.framework");
$file = MOBILEMENUCK_PLUGIN_MEDIA_URI . '/assets/mobilemenuck.js?ver=1.5.9';
$js = "jQuery(document).ready(function(){"
. " new MobileMenuCK(jQuery('" . $selector . "'), {";
foreach ($options as $name => $value) {
$js .= $name . " : '" . $value . "',";
}
$js .= "uriroot : '" . \JUri::root(true) . "'";
$js .= "});"
. " });";
$css = self::getMediaQueries($selector, $options);
if ($inline) {
CKLoader::loadScriptInline($file);
CKLoader::loadScriptDeclarationInline($js);
CKLoader::loadStyleDeclarationInline($css);
} else {
CKLoader::loadScript($file);
CKLoader::loadScriptDeclaration($js);
CKLoader::loadStyleDeclaration($css);
}
return $menuid;
}
public static function getDefaultOptions() {
$defaults = [
// 'menuid' => $menuid // unique text identifier
'menubarbuttoncontent' => '&#x2261;' // character to put in the button
,'topbarbuttoncontent' => '×' // character to put in the button
,'showmobilemenutext' => 'default' // default, custom, none
,'mobilemenutext' => \JText::_('PLG_MOBILEMENUCK_MENU') // text to use if showmobilemenutext = custom
,'container' => 'body' // body, topfixed, menu
,'detectiontype' => 'resolution' // resolution, phone, tablet
,'resolution' => '640' // value in px
,'usemodules' => '0' // 0, 1
,'useimages' => '0' // 0, 1
,'showlogo' => '1' // 0 (no), 1 (yes), 2 (in menu bar), 3 (in top bar)
,'showdesc' => '0' // 0, 1
,'displaytype' => 'accordion' // flat, accordion, fade, push
,'displayeffect' => 'normal' // normal, slideleft, slideright, slideleftover, sliderightover, topfixed, open
,'menuwidth' => '300' // value in px
,'openedonactiveitem' => '0' // 0, 1
,'mobilebackbuttontext' => \JText::_('PLG_MOBILEMENUCK_MOBILEBACKBUTTON') // text
,'menuselector' => 'ul' // text
,'uriroot' => \JUri::root(true) // base uri of the website
,'tooglebarevent' => 'click' // event used to open the menu
,'tooglebaron' => 'all' // target used to open the menu
// Logo options
,'logo_source' => 'maximenuck' // maximenuck, custom
,'logo_image' => '' // the image src
,'logo_link' => '' // the link url
,'logo_alt' => '' // the alt tag
,'logo_position' => 'left' // left, center, right
,'logo_width' => '' // image width
,'logo_height' => '' // image height
,'logo_margintop' => '' // margin top
,'logo_marginright' => '' // margin right
,'logo_marginbottom' => '' // margin bototm
,'logo_marginleft' => '' // margin left
,'topfixedeffect' => 'always' // always or onscroll
,'lock_button' => '0'
,'lock_forced' => '0'
,'accordion_use_effects' => '0'
,'accordion_toggle' => '0'
,'show_icons' => '1'
,'counter' => '0'
,'hide_desktop' => '1'
,'overlay' => '0'
];
return $defaults;
}
/**
* Search for the CSS styles from default theme, or in the template
*
* @return void
*
*/
public static function loadTheme($id, $inline = false, $themeid = null) {
require_once(MOBILEMENUCK_PLATFORM . '/loader.php');
$layoutcss = '';
if ((int) $themeid) {
$layoutcss = Helper::getStyleById($themeid, $select = 'layoutcss', $type = 'result');
}
// if we don't have a layout according to the ID, then use the default one
if (!(int) $themeid || ! $layoutcss){
$layoutcss = Helper::getLayoutCss();
}
Helper::makeCssReplacement($layoutcss);
$css = str_replace('|ID|', '[data-id="' . $id . '"]', $layoutcss);
if ($inline) {
CKLoader::loadStyleDeclarationInline($css);
} else {
CKLoader::loadStyleDeclaration($css);
}
}
/**
* Set the mediaqueries to hide - show the module and mobile bar
*
* @return string - the css to load in the page
*
*/
private static function getMediaQueries($selector, $options) {
$detect_type = $options['detectiontype'];
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');
$bodypadding = ($options['container'] == 'body' || $options['container'] == 'topfixed') ? 'body { padding-top: 40px !important; }' : '';
if ($detect_type == 'resolution') {
$css = "#" . $options['menuid'] . "-mobile-bar, #" . $options['menuid'] . "-mobile-bar-wrap-topfixed { display: none; }
@media only screen and (max-width:" . str_replace('px', '', $options['resolution']) . "px){
" . ($options['hide_desktop'] === '0' ? '' : $selector . " { display: none !important; }") . "
#" . $options['menuid'] . "-mobile-bar, #" . $options['menuid'] . "-mobile-bar-wrap-topfixed { display: block; }
.mobilemenuck-hide {display: none !important;}
" . $bodypadding . " }";
} else if (($detect_type == 'tablet' && $detect->isMobile()) || ($detect_type == 'phone' && $detect->isMobile() && !$detect->isTablet())) {
$css = $selector . " { display: none !important; }
#" . $options['menuid'] . "-mobile-bar, #" . $options['menuid'] . "-mobile-bar-wrap-topfixed { display: block; }
.mobilemenuck-hide {display: none !important;}
" . $bodypadding;
} else if ($detect_type == 'all') {
$css = "#" . $options['menuid'] . "-mobile-bar, #" . $options['menuid'] . "-mobile-bar-wrap-topfixed { display: block; }
" . $selector . " { display: none !important; }
.mobilemenuck-hide {display: none !important;}
" . $bodypadding;
} else {
$css = '';
}
return $css;
}
/**
* Determines what to use as character
*
* @return string - the html value
*
*/
static function getButtonContent($value, $styleParams) {
switch ($value) {
case 'hamburger':
$content = '&#x2261;';
break;
case 'close':
$content = '×';
break;
case 'custom' :
$content = $styleParams->menubarbuttoncontentcustomtext;
break;
default :
case 'none':
$content = '';
break;
}
return $content;
}
}

View File

@@ -0,0 +1,182 @@
; @copyright Copyright (C) 2016 Cédric KEIFLIN alias ced1870
; http://www.template-creator.com
; http://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_MOBILEMENUCK_XML_DESC="Add menus for mobile devices in your website."
PLG_MOBILEMENUCK_PARAMS_FIELDSET_LABEL="Mobile Menu CK"
PLG_MOBILEMENUCK_SELECT="Select"
PLG_MOBILEMENUCK_EDIT="Edit"
PLG_MOBILEMENUCK_ENABLE_LABEL="Enable Mobile Menu CK"
PLG_MOBILEMENUCK_ENABLE_DESC="Activate this option to create a mobile menu"
PLG_MOBILEMENUCK_SELECT_STYLE_LABEL="Select a style"
PLG_MOBILEMENUCK_SELECT_STYLE_DESC="Choose an existing style or create a new style for this menu"
PLG_MOBILEMENUCK_TITLE_TEXT_LABEL="Beautiful title"
PLG_MOBILEMENUCK_TITLE_TEXT_DESC="Select which text to show in the beautiful title"
PLG_MOBILEMENUCK_MODULE_TITLE="Module title"
PLG_MOBILEMENUCK_CUSTOM_TEXT="Custom Text"
PLG_MOBILEMENUCK_TITLE_TEXT_CUSTOM_LABEL="Custom title text"
PLG_MOBILEMENUCK_TITLE_TEXT_CUSTOM_DESC="Write the text to show in the beautiful title"
PLG_MOBILEMENUCK_SELECT_ICON_LABEL="Select the title icon"
PLG_MOBILEMENUCK_SELECT_ICON_DESC="Select which icon to show in the title. This uses the Font Awesome library"
PLG_MOBILEMENUCK_LOAD_FA_LABEL="Load the Font Awesome library"
PLG_MOBILEMENUCK_LOAD_FA_DESC="Activate this option if you want to load the Font Awesome library in your page. If you have already loaded it, you can leave this option on NO"
PLG_MOBILEMENUCK_NONE="None"
PLG_MOBILEMENUCK_CLEAR="Clear"
PLG_MOBILEMENUCK_SELECT_FIRST="Please first select a style"
PLG_MOBILEMENUCK_MOBILERESOLUTION_LABEL="Limit of resolution for the mobile menu"
PLG_MOBILEMENUCK_MOBILERESOLUTION_DESC="Give a resolution in px. The mobile menu will be active under this resolution"
PLG_MOBILEMENUCK_MOBILETHEME_LABEL="Mobile theme"
PLG_MOBILEMENUCK_MOBILETHEME_DESC="Choose a theme"
PLG_MOBILEMENUCK_SELECTMODULE_LABEL="Maximenu module for mobile"
PLG_MOBILEMENUCK_SELECTMODULE_DESC="Select the Maximenu module to use as main menu for mobile. WARNING : you can select multiple modules to use for a multilingual website. But ONLY ONE of these modules must be loaded for each page."
PLG_MOBILEMENUCK_DETECTIONTYPE_LABEL="Detection type"
PLG_MOBILEMENUCK_DETECTIONTYPE_DESC="Choose if you want to activate the menu based on the resolution (defined in the module options), or by detecting the device by type tablet or phone"
PLG_MOBILEMENUCK_RESOLUTION="Resolution"
PLG_MOBILEMENUCK_TABLET="Tablet and phone"
PLG_MOBILEMENUCK_PHONE="Phone only"
PLG_MOBILEMENUCK_DISPLAYTYPE_LABEL="Display type"
PLG_MOBILEMENUCK_DISPLAYTYPE_DESC="Choose if you want a flat menu with all levels shown or an accordion menu that shows the submenus on click"
PLG_MOBILEMENUCK_FLAT="Flat"
PLG_MOBILEMENUCK_ACCORDION="Accordion"
PLG_MOBILEMENUCK_DISPLAYEFFECT_LABEL="Display effect"
PLG_MOBILEMENUCK_DISPLAYEFFECT_DESC="Choose the way the menu will appear in the page"
PLG_MOBILEMENUCK_SLIDELEFT="Slide Left"
PLG_MOBILEMENUCK_SLIDERIGHT="Slide Right"
PLG_MOBILEMENUCK_MOBILEMENUTEXT_LABEL="Menu bar text"
PLG_MOBILEMENUCK_MOBILEMENUTEXT_DESC="Set the text you want to put in the menu bar, if nothing is set then the standard 'Menu' word will be used"
PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_LABEL="Show the mobile menu text"
PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_DESC="Select how to show the mobile menu text, normal = 'Menu' or the active item title, custom = the text in the field above, none = no text"
PLG_MOBILEMENUCK_DEFAULTTEXT="Default text"
PLG_MOBILEMENUCK_CUSTOMTEXT="Custom text"
PLG_MOBILEMENUCK_OPEN_SLIDE="Open sliding"
PLG_MOBILEMENUCK_MOBILEICON_LABEL="Mobile icon"
PLG_MOBILEMENUCK_MOBILEICON_DESC="Set the image that will be used as icon for this menu item in the Mobile menu"
PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_LABEL="Text replacement"
PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_DESC="Set the text that will be used for the Mobile menu. Left it empty to use the default menu item title"
PLG_MOBILEMENUCK_FADELEVELS="Fade"
PLG_MOBILEMENUCK_MOBILEBACKBUTTON="Back"
PLG_MOBILEMENUCK_PUSHLEVELS="Slide"
PLG_MOBILEMENUCK_DISPLAYTYPE_INFO_LABEL="<p style='background:#eee;padding:5px;margin:3px 0;'>Note : some combinations do not work, like using the 'slide' effect and the 'normal' position.</p>"
PLG_MOBILEMENUCK_SHOWLOGO_MENUBAR="In the menu bar"
PLG_MOBILEMENUCK_SHOWLOGO_TOPBAR="In the top bar"
PLG_MOBILEMENUCK_MOBILEMENUWIDTH_LABEL="Menu width"
PLG_MOBILEMENUCK_MOBILEMENUWIDTH_DESC="Set a value for the mobile menu when shown"
PLG_MOBILEMENUCK_SLIDELEFT_OVER="Slide Left over the page"
PLG_MOBILEMENUCK_SLIDERIGHT_OVER="Slide Right over the page"
PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_LABEL="Opened on active item"
PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_DESC="If set to yes, it will open the active path in the accordion mobile menu"
PLG_MOBILEMENUCK_CONTAINER_LABEL="Menu place"
PLG_MOBILEMENUCK_CONTAINER_DESC="Add the menu in the body of the page, or in the current menu container"
PLG_MOBILEMENUCK_BODY="Body"
PLG_MOBILEMENUCK_MENUCONTAINER="Current menu"
PLG_MOBILEMENUCK_SHOWDESC_LABEL="Show the item description"
PLG_MOBILEMENUCK_SHOWDESC_DESC="Select if you want to add the description to the item title"
PLG_MOBILEMENUCK_SHOWLOGO_LABEL="Show the logo"
PLG_MOBILEMENUCK_SHOWLOGO_DESC="If you have set up a logo in the Maximenu module options you can choose if you want to show it on mobile"
PLG_MOBILEMENUCK_SHOWLOGO_MOBILE="In the mobile menu"
PLG_MOBILEMENUCK_MOBILEUSEIMAGE_LABEL="Show the images"
PLG_MOBILEMENUCK_MOBILEUSEIMAGE_DESC="Load the images in the mobile menu"
PLG_MOBILEMENUCK_MOBILEUSEMODULE_LABEL="Show the modules"
PLG_MOBILEMENUCK_MOBILEUSEMODULE_DESC="Load the modules in the mobile menu"
PLG_MOBILEMENUCK_TOPFIXED="Top fixed"
PLG_MOBILEMENUCK_NORMAL="Normal"
PLG_MOBILEMENUCK_MENU="Menu"
PLG_MOBILEMENUCK_MERGE_WITH_LABEL="Merged with"
PLG_MOBILEMENUCK_MERGE_WITH_DESC="You can merge this module menu with another mobile menu"
PLG_MOBILEMENUCK_ENABLEMOBILE_LABEL="Enable for mobile"
PLG_MOBILEMENUCK_ENABLEMOBILE_DESC="Show or not the item in the mobile menu"
PLG_MOBILEMENUCK_FIELDSET_LABEL="Mobile Menu CK"
;added 1.0.14
PLG_MOBILEMENUCK_BEFORETEXT_LABEL="Before text"
PLG_MOBILEMENUCK_BEFORETEXT_DESC="Add a text that will be shown before the menu items. It can contains html code."
PLG_MOBILEMENUCK_AFTERTEXT_LABEL="After text"
PLG_MOBILEMENUCK_AFTERTEXT_DESC="Add a text that will be shown after the menu items. It can contains html code."
;added 1.1.3
PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_LABEL="Open menu on"
PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_DESC="Choose the event to use to open the menu"
PLG_MOBILEMENUCK_CLICK="Click"
PLG_MOBILEMENUCK_MOUSEOVER="Mouseover"
PLG_MOBILEMENUCK_TOGGLE_BAR_ON_LABEL="Place to open"
PLG_MOBILEMENUCK_TOGGLE_BAR_ON_DESC="Choose if you want to open the menu with the whole menu bar or only the button"
PLG_MOBILEMENUCK_FULL_BAR="Whole menu bar"
PLG_MOBILEMENUCK_ONLY8BUTTON="Only the button"
;added 1.2.6
PLG_MOBILEMENUCK_LOGO_SOURCE_LABEL="Source of the logo"
PLG_MOBILEMENUCK_LOGO_LABEL="Logo"
PLG_MOBILEMENUCK_LOGOIMAGE_LABEL="Logo image"
PLG_MOBILEMENUCK_LOGOIMAGE_DESC="Choose the image to show as logo"
PLG_MOBILEMENUCK_LOGOLINK_LABEL="Logo link"
PLG_MOBILEMENUCK_LOGOLINK_DESC="Set a link url to add on the logo"
PLG_MOBILEMENUCK_LOGOALT_LABEL="Alternative text"
PLG_MOBILEMENUCK_LOGOALT_DESC="ALT tag for the image"
PLG_MOBILEMENUCK_LOGOPOSITION_LABEL="Logo position"
PLG_MOBILEMENUCK_LOGOPOSITION_DESC="Choose where to place the logo in the menu"
PLG_MOBILEMENUCK_LOGOWIDTH_LABEL="Logo width"
PLG_MOBILEMENUCK_LOGOWIDTH_DESC="Set the width for the logo"
PLG_MOBILEMENUCK_LOGOHEIGHT_LABEL="Logo height"
PLG_MOBILEMENUCK_LOGOHEIGHT_DESC="Set the height for the logo"
PLG_MOBILEMENUCK_MARGINTOP_LABEL="Margin top"
PLG_MOBILEMENUCK_MARGINTOP_DESC="margin in px"
PLG_MOBILEMENUCK_MARGINRIGHT_LABEL="Margin right"
PLG_MOBILEMENUCK_MARGINRIGHT_DESC="margin in px"
PLG_MOBILEMENUCK_MARGINBOTTOM_LABEL="Margin bottom"
PLG_MOBILEMENUCK_MARGINBOTTOM_DESC="margin in px"
PLG_MOBILEMENUCK_MARGINLEFT_LABEL="Margin left"
PLG_MOBILEMENUCK_MARGINLEFT_DESC="margin in px"
PLG_MOBILEMENUCK_CUSTOM_LOGO="Custom logo"
PLG_MOBILEMENUCK_LEFT="Left"
PLG_MOBILEMENUCK_RIGHT="Right"
PLG_MOBILEMENUCK_CENTER="Center"
PLG_MOBILEMENUCK_TEXT_LABEL="Text"
;added 1.3.0
PLG_MOBILEMENUCK_LOGO_WHERE_LABEL="Logo place"
PLG_MOBILEMENUCK_LOGO_WHERE_DESC="Select where to show the logo"
;added 1.3.8
PLG_MOBILEMENUCK_LOCK_BUTTON_LABEL="Enable lock button"
PLG_MOBILEMENUCK_LOCK_BUTTON_DESC="You can use the lock button to store the state of the menu when navigating on the website"
;added 1.4.0
PLG_MOBILEMENUCK_FLYOUT="Flyout"
PLG_MOBILEMENUCK_ALL_DEVICES="All devices"
;added 1.4.1
PLG_MOBILEMENUCK_TOPFIXED_EFFECT_LABEL="Top fixed effect"
PLG_MOBILEMENUCK_TOPFIXED_EFFECT_DESC="Select if you want the menu to be alwyas sticked or only on scroll when it reaches the top of the page"
PLG_MOBILEMENUCK_ALWAYS="Always"
PLG_MOBILEMENUCK_ONSCROLL="On scroll"
;added 1.4.2
PLG_MOBILEMENUCK_ACCORDION_EFFECT_LABEL="Enable accordion effect"
PLG_MOBILEMENUCK_ACCORDION_EFFECT_DESC="Shows the submenu with a smooth transition"
PLG_MOBILEMENUCK_ACCORDION_TOGGLE_LABEL="Toogle accordion items"
PLG_MOBILEMENUCK_ACCORDION_TOGGLE_DESC="Close the opened submenus when you open a new one"
PLG_MOBILEMENUCK_LOCK_FORCED_LABEL="Force the locked state"
PLG_MOBILEMENUCK_LOCK_FORCED_DESC="It stores automatically the state of the menu when navigating on the website"
;added 1.5.1
MOBILEMENUCK_INCLUDE_META="Include meta tag"
;added 1.5.2
PLG_MOBILEMENUCK_ICONTYPE_LABEL="Icon type"
PLG_MOBILEMENUCK_ICONTYPE_IMAGE="Image"
PLG_MOBILEMENUCK_ICONTYPE_CSS="CSS class"
PLG_MOBILEMENUCK_MOBILEICONCSS_LABEL="CSS class for the icon"
PLG_MOBILEMENUCK_ICONS_LABEL="Icons"
PLG_MOBILEMENUCK_SHOW_ICONS_LABEL="Show icons"
PLG_MOBILEMENUCK_ICON_WIDTH_LABEL="Width"
PLG_MOBILEMENUCK_ICON_HEIGHT_LABEL="Height"
PLG_MOBILEMENUCK_COUNTER_LABEL="Show Counter"
PLG_MOBILEMENUCK_ICON_MARGIN_LABEL="Icon margin"
;added 1.5.6
PLG_MOBILEMENUCK_PRO_ONLY="Only available in the Pro version"
PLG_MOBILEMENUCK_VIDEO_TUTORIAL="Video tutorial"
;added 1.5.10
PLG_MOBILEMENUCK_HIDE_DESKTOP_LABEL="Hide the desktop menu"
;added 1.5.14
PLG_MOBILEMENUCK_OVERLAY_LABEL="Show overlay"
PLG_MOBILEMENUCK_OVERLAY_COLOR_LABEL="Overlay color"
PLG_MOBILEMENUCK_OVERLAY_OPACITY_LABEL="Overlay opacity from 0 to 1"

View File

@@ -0,0 +1,9 @@
; @copyright Copyright (C) 2015 Cédric KEIFLIN alias ced1870
; http://www.template-creator.com
; http://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_MOBILEMENUCK_XML_DESC="Add menus for mobile devices in your website."

View File

@@ -0,0 +1,182 @@
; @copyright Copyright (C) 2016 Cédric KEIFLIN alias ced1870
; http://www.template-creator.com
; http://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_MOBILEMENUCK_XML_DESC="Ajouter des menus pour appareils mobile à votre site web."
PLG_MOBILEMENUCK_PARAMS_FIELDSET_LABEL="Mobile Menu CK"
PLG_MOBILEMENUCK_SELECT="Sélectionner"
PLG_MOBILEMENUCK_EDIT="Editer"
PLG_MOBILEMENUCK_ENABLE_LABEL="Activer Mobile Menu CK"
PLG_MOBILEMENUCK_ENABLE_DESC="Activez cette option pour créer un menu mobile"
PLG_MOBILEMENUCK_SELECT_STYLE_LABEL="Selectionner un style"
PLG_MOBILEMENUCK_SELECT_STYLE_DESC="Choisissez parmi les styles existants ou créez en un nouveau pour ce menu"
PLG_MOBILEMENUCK_TITLE_TEXT_LABEL="Texte du titre"
PLG_MOBILEMENUCK_TITLE_TEXT_DESC="Selectionner quel texte afficher dans le titre"
PLG_MOBILEMENUCK_MODULE_TITLE="Titre du module"
PLG_MOBILEMENUCK_CUSTOM_TEXT="Texte perso"
PLG_MOBILEMENUCK_TITLE_TEXT_CUSTOM_LABEL="Texte perso"
PLG_MOBILEMENUCK_TITLE_TEXT_CUSTOM_DESC="Ecrire le texte à afficher dans le titre"
PLG_MOBILEMENUCK_SELECT_ICON_LABEL="Icone du titre"
PLG_MOBILEMENUCK_SELECT_ICON_DESC="Selectionner une icone à afficher dans le titre. Ceci est basé sur la librairie Font Awesome"
PLG_MOBILEMENUCK_LOAD_FA_LABEL="Charger la librairie Font Awesome"
PLG_MOBILEMENUCK_LOAD_FA_DESC="Activer cette option pour charger la librairie Font Awesome dans la page. Si vous l'avez déjà chargée, vous pouvez laisser cette option sur NON"
PLG_MOBILEMENUCK_NONE="Aucun"
PLG_MOBILEMENUCK_CLEAR="Effacer"
PLG_MOBILEMENUCK_SELECT_FIRST="Veuillez d'abord sélectionner un style"
PLG_MOBILEMENUCK_MOBILERESOLUTION_LABEL="Résolution maxi pour menu mobile"
PLG_MOBILEMENUCK_MOBILERESOLUTION_DESC="Donner une résolution en px en dessous de laquelle le menu mobile s'active"
PLG_MOBILEMENUCK_MOBILETHEME_LABEL="Thème mobile"
PLG_MOBILEMENUCK_MOBILETHEME_DESC="Choisir un thème"
PLG_MOBILEMENUCK_SELECTMODULE_LABEL="Sélectionner un module"
PLG_MOBILEMENUCK_SELECTMODULE_DESC="Choisir un module Maximenu à utiliser comme menu principal pour mobile. ATTENTION vous pouvez sélectionner plusieurs modules pour des sites multilingues, mais un seul des modules sélectionné doit apparaitre dans chaque page du site."
PLG_MOBILEMENUCK_DETECTIONTYPE_LABEL="Type de détection"
PLG_MOBILEMENUCK_DETECTIONTYPE_DESC="Sélectionner comment le menu doit s'activer, basé sur la résolution (définie dans les options du module) ou en détectant le périphérique, tablette ou téléphone"
PLG_MOBILEMENUCK_RESOLUTION="Résolution"
PLG_MOBILEMENUCK_TABLET="Tablette et téléphone"
PLG_MOBILEMENUCK_PHONE="Téléphone uniquement"
PLG_MOBILEMENUCK_DISPLAYTYPE_LABEL="Type d'affichage"
PLG_MOBILEMENUCK_DISPLAYTYPE_DESC="Choisissez si vous voulez un menu plat qui affiche tous les niveaux ou un menu accordeon qui affiche les sous menus au clic"
PLG_MOBILEMENUCK_FLAT="A plat"
PLG_MOBILEMENUCK_ACCORDION="Accordeon"
PLG_MOBILEMENUCK_DISPLAYEFFECT_LABEL="Effet d'affichage"
PLG_MOBILEMENUCK_DISPLAYEFFECT_DESC="Choisir la manière dont le menu s'affiche"
PLG_MOBILEMENUCK_SLIDELEFT="Glissement gauche"
PLG_MOBILEMENUCK_SLIDERIGHT="Glissement droite"
PLG_MOBILEMENUCK_MOBILEMENUTEXT_LABEL="Texte dans la barre de menu"
PLG_MOBILEMENUCK_MOBILEMENUTEXT_DESC="Définir le texte à afficher, si vide alors le mot 'Menu' sera utilisé"
PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_LABEL="Montrer le texte pour le menu mobile"
PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_DESC="Choisir quel texte afficher dans la barre du menu mobile. Texte par défaut = mot 'Menu' ou le titre du lien actif, Personnalisé = le texte entré dans le champ ci-dessous, Aucun = aucun texte affiché"
PLG_MOBILEMENUCK_DEFAULTTEXT="Texte par défaut"
PLG_MOBILEMENUCK_CUSTOMTEXT="Texte personnalisé"
PLG_MOBILEMENUCK_OPEN_SLIDE="Ouverture en glissant"
PLG_MOBILEMENUCK_MOBILEICON_LABEL="Icône mobile"
PLG_MOBILEMENUCK_MOBILEICON_DESC="Définir l'image qui sera utilisée pour le menu Mobile"
PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_LABEL="Texte de remplacement"
PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_DESC="Définir le texte qui sera utilisé pour le menu Mobile, laisser le champ vide pour utiliser le titre du lien"
PLG_MOBILEMENUCK_FADELEVELS="En fondu"
PLG_MOBILEMENUCK_MOBILEBACKBUTTON="Retour"
PLG_MOBILEMENUCK_PUSHLEVELS="En glissant"
PLG_MOBILEMENUCK_DISPLAYTYPE_INFO_LABEL="<p style='background:#eee;padding:5px;margin:3px 0;'>Note : certaines combinaisons ne sont pas compatibles, comme le type d'affichage en 'glissant' avec l'effet 'normal'.</p>"
PLG_MOBILEMENUCK_SHOWLOGO_MENUBAR="Dans la barre de menu"
PLG_MOBILEMENUCK_SHOWLOGO_TOPBAR="Dans la barre du haut"
PLG_MOBILEMENUCK_MOBILEMENUWIDTH_LABEL="Largeur du menu"
PLG_MOBILEMENUCK_MOBILEMENUWIDTH_DESC="Définissez une valeur pour la largeur du menu lorsqu'il est affiché"
PLG_MOBILEMENUCK_SLIDELEFT_OVER="Glissement gauche au dessus de la page"
PLG_MOBILEMENUCK_SLIDERIGHT_OVER="Glissement droite au dessus de la page"
PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_LABEL="Ouvrir sur le lien actif"
PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_DESC="Si activée, cette option déroule le menu accordeon pour afficher le chemin du lien actif"
PLG_MOBILEMENUCK_CONTAINER_LABEL="Emplacement du menu"
PLG_MOBILEMENUCK_CONTAINER_DESC="Ajouter le menu dans le corps de la page ou dans l'emplacement actuel du menu sélectionné"
PLG_MOBILEMENUCK_BODY="Corps de la page"
PLG_MOBILEMENUCK_MENUCONTAINER="Menu actuel"
PLG_MOBILEMENUCK_SHOWDESC_LABEL="Afficher la description"
PLG_MOBILEMENUCK_SHOWDESC_DESC="Afficher la description du lien à côté du titre"
PLG_MOBILEMENUCK_SHOWLOGO_LABEL="Montrer le logo"
PLG_MOBILEMENUCK_SHOWLOGO_DESC="Si vous avez défini un logo dans les options du module Maximenu vous pouvez choisir de l'afficher dans le menu sur les mobiles"
PLG_MOBILEMENUCK_SHOWLOGO_MOBILE="Dans le menu mobile"
PLG_MOBILEMENUCK_MOBILEUSEIMAGE_LABEL="Afficher les images"
PLG_MOBILEMENUCK_MOBILEUSEIMAGE_DESC="Charger les images du menu dans le menu mobile"
PLG_MOBILEMENUCK_MOBILEUSEMODULE_LABEL="Afficher les modules"
PLG_MOBILEMENUCK_MOBILEUSEMODULE_DESC="Charger les modules du menu dans le menu mobile"
PLG_MOBILEMENUCK_TOPFIXED="Figé en haut"
PLG_MOBILEMENUCK_NORMAL="Normal"
PLG_MOBILEMENUCK_MENU="Menu"
PLG_MOBILEMENUCK_MERGE_WITH_LABEL="Fusionné avec"
PLG_MOBILEMENUCK_MERGE_WITH_DESC="Vous pouvez fusionner ce menu mobile avec un autre menu mobile existant"
PLG_MOBILEMENUCK_ENABLEMOBILE_LABEL="Activer pour mobile"
PLG_MOBILEMENUCK_ENABLEMOBILE_DESC="Afficher ou non le lien dans le menu mobile"
PLG_MOBILEMENUCK_FIELDSET_LABEL="Mobile Menu CK"
;1.0.14
PLG_MOBILEMENUCK_BEFORETEXT_LABEL="Texte de début"
PLG_MOBILEMENUCK_BEFORETEXT_DESC="Ajouter un texte qui sera affiché avant les liens de menu. Il peut contenir du code html."
PLG_MOBILEMENUCK_AFTERTEXT_LABEL="Texte de fin"
PLG_MOBILEMENUCK_AFTERTEXT_DESC="Ajouter un texte qui sera affiché après les liens de menu. Il peut contenir du code html."
;1.1.3
PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_LABEL="Open menu on"
PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_DESC="Choose the event to use to open the menu"
PLG_MOBILEMENUCK_CLICK="Click"
PLG_MOBILEMENUCK_MOUSEOVER="Mouseover"
PLG_MOBILEMENUCK_TOGGLE_BAR_ON_LABEL="Place to open"
PLG_MOBILEMENUCK_TOGGLE_BAR_ON_DESC="Choose if you want to open the menu with the whole menu bar or only the button"
PLG_MOBILEMENUCK_FULL_BAR="Whole menu bar"
PLG_MOBILEMENUCK_ONLY8BUTTON="Only the button"
;added 1.2.6
PLG_MOBILEMENUCK_LOGO_SOURCE_LABEL="Source du logo"
PLG_MOBILEMENUCK_LOGO_LABEL="Logo"
PLG_MOBILEMENUCK_LOGOIMAGE_LABEL="Image du logo"
PLG_MOBILEMENUCK_LOGOIMAGE_DESC="Coisir l'image à utiliser comme logo"
PLG_MOBILEMENUCK_LOGOLINK_LABEL="Lien du logo"
PLG_MOBILEMENUCK_LOGOLINK_DESC="Saisir une url à ajouter au logo"
PLG_MOBILEMENUCK_LOGOALT_LABEL="Texte alternatif"
PLG_MOBILEMENUCK_LOGOALT_DESC="Balise ALT de l'image"
PLG_MOBILEMENUCK_LOGOPOSITION_LABEL="Position du logo"
PLG_MOBILEMENUCK_LOGOPOSITION_DESC="Choisir où placer le logo dans le menu"
PLG_MOBILEMENUCK_LOGOWIDTH_LABEL="Largeur du logo"
PLG_MOBILEMENUCK_LOGOWIDTH_DESC="Largeur du logo"
PLG_MOBILEMENUCK_LOGOHEIGHT_LABEL="Hauteur du logo"
PLG_MOBILEMENUCK_LOGOHEIGHT_DESC="Hauteur du logo"
PLG_MOBILEMENUCK_MARGINTOP_LABEL="Marge haute"
PLG_MOBILEMENUCK_MARGINTOP_DESC="marge en px"
PLG_MOBILEMENUCK_MARGINRIGHT_LABEL="Marge droite"
PLG_MOBILEMENUCK_MARGINRIGHT_DESC="marge en px"
PLG_MOBILEMENUCK_MARGINBOTTOM_LABEL="Marge bas"
PLG_MOBILEMENUCK_MARGINBOTTOM_DESC="marge en px"
PLG_MOBILEMENUCK_MARGINLEFT_LABEL="Marge gauche"
PLG_MOBILEMENUCK_MARGINLEFT_DESC="marge en px"
PLG_MOBILEMENUCK_CUSTOM_LOGO="Logo personnalisé"
PLG_MOBILEMENUCK_LEFT="Gauche"
PLG_MOBILEMENUCK_RIGHT="Droite"
PLG_MOBILEMENUCK_CENTER="Centre"
PLG_MOBILEMENUCK_TEXT_LABEL="Texte"
;added 1.3.0
PLG_MOBILEMENUCK_LOGO_WHERE_LABEL="Place du logo"
PLG_MOBILEMENUCK_LOGO_WHERE_DESC="Selectionner où afficher le logo"
;added 1.3.8
PLG_MOBILEMENUCK_LOCK_BUTTON_LABEL="Activer le bouton de verrouillage"
PLG_MOBILEMENUCK_LOCK_BUTTON_DESC="Le bouton de verrouillage permet d'enregistrer l'état du menu lors de la navigation entre plusieurs pages du site"
;added 1.4.0
PLG_MOBILEMENUCK_FLYOUT="Flyout"
PLG_MOBILEMENUCK_ALL_DEVICES="Tous les appareils"
;added 1.4.1
PLG_MOBILEMENUCK_TOPFIXED_EFFECT_LABEL="Effet figé en haut"
PLG_MOBILEMENUCK_TOPFIXED_EFFECT_DESC="Choisissez si vous le voulez toujours figée, ou uniquement au scroll lorsqu'il arrive au bord de l'écran"
PLG_MOBILEMENUCK_ALWAYS="Toujours"
PLG_MOBILEMENUCK_ONSCROLL="Au scroll"
;added 1.4.2
PLG_MOBILEMENUCK_ACCORDION_EFFECT_LABEL="Activer les effets d'accordéon"
PLG_MOBILEMENUCK_ACCORDION_EFFECT_DESC="Affiche les sous menus avec un effet d'animation"
PLG_MOBILEMENUCK_ACCORDION_TOGGLE_LABEL="Basculer les liens accordéon"
PLG_MOBILEMENUCK_ACCORDION_TOGGLE_DESC="Ferme les sous menus actifs lorsque vous ouvrez un nouveau sous menu"
PLG_MOBILEMENUCK_LOCK_FORCED_LABEL="Forcer le verrouillage d'état"
PLG_MOBILEMENUCK_LOCK_FORCED_DESC="Enregistre automatiquement l'état du menu lors de la navigation entre plusieurs pages du site"
;added 1.5.1
MOBILEMENUCK_INCLUDE_META="Ajoute le meta tag"
;added 1.5.2
PLG_MOBILEMENUCK_ICONTYPE_LABEL="Icône type"
PLG_MOBILEMENUCK_ICONTYPE_IMAGE="Image"
PLG_MOBILEMENUCK_ICONTYPE_CSS="Classe CSS"
PLG_MOBILEMENUCK_MOBILEICONCSS_LABEL="Classe CSS pour l'icône"
PLG_MOBILEMENUCK_ICONS_LABEL="Icônes"
PLG_MOBILEMENUCK_SHOW_ICONS_LABEL="Montrer les icônes"
PLG_MOBILEMENUCK_ICON_WIDTH_LABEL="Largeur"
PLG_MOBILEMENUCK_ICON_HEIGHT_LABEL="Hauteur"
PLG_MOBILEMENUCK_COUNTER_LABEL="Montrer le compteur"
PLG_MOBILEMENUCK_ICON_MARGIN_LABEL="Marge de l'icône"
;added 1.5.6
PLG_MOBILEMENUCK_PRO_ONLY="Seulement disponible dans la version Pro"
PLG_MOBILEMENUCK_VIDEO_TUTORIAL="Tutoriel vidéo"
;added 1.5.10
PLG_MOBILEMENUCK_HIDE_DESKTOP_LABEL="Cacher le menu normal"
;added 1.5.14
PLG_MOBILEMENUCK_OVERLAY_LABEL="Afficher un overlay"
PLG_MOBILEMENUCK_OVERLAY_COLOR_LABEL="Couleur de l'overlay"
PLG_MOBILEMENUCK_OVERLAY_OPACITY_LABEL="Opacité de l'overlay de 0 à 1"

View File

@@ -0,0 +1,9 @@
; @copyright Copyright (C) 2015 Cédric KEIFLIN alias ced1870
; http://www.template-creator.com
; http://www.joomlack.fr
; @license GNU/GPL
; Double quotes in the values have to be formatted as "_QQ_"
PLG_MOBILEMENUCK_XML_DESC="Ajouter des menus pour appareils mobile à votre site web."

View File

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

View File

@@ -0,0 +1,820 @@
<?php
/**
* @name Mobile Menu CK
* @copyright Copyright (C) 2018. 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('JPATH_BASE') or die;
use Joomla\Module\Menu\Site\Helper\MenuHelper;
if (version_compare(JVERSION, '4') < 0) {
include_once JPATH_ROOT . '/modules/mod_menu/helper.php';
}
/*
* Module Chrome function specific to encapsulate the module
*/
// function modChrome_mobilemenuck($module, &$params, &$attribs)
// {
// }
/*
* Class of the plugin
*/
class PlgSystemMobilemenuck extends JPlugin {
private $styles = Array();
private $scripts = Array();
private $stylesLoaded = Array();
// private $scriptsLoaded = Array();
private $modulesbar = Array();
private $modulestop = Array();
private $modulesbottom = Array();
private $modules = Array();
public function __construct(&$subject, $config = array()) {
parent::__construct($subject, $config);
}
private function callLibraries() {
include_once(dirname(__FILE__) . '/defines.php');
include_once(dirname(__FILE__) . '/helpers/helper.php');
include_once(dirname(__FILE__) . '/helpers/menu.php');
include_once(dirname(__FILE__) . '/helpers/function.php');
}
private function shallLoad() { return true;
$app = JFactory::getApplication();
if (! $app->isClient('site') && ! $app->isClient('administrator'))
{
return false;
}
if ($app->isClient('cli'))
{
return false;
}
if ($app->isClient('api'))
{
return false;
}
$doc = JFactory::getDocument();
$doctype = $doc->getType();
// $document = \Joomla\CMS\Factory::getApplication()->getDocument();
if ($doctype !== 'html')
{
return false;
}
return true;
}
public function onContentPrepareForm($form, $data) {
if (! $this->shallLoad()) return;
$this->callLibraries();
if (
($form->getName() != 'com_modules.module' && $form->getName() != 'com_advancedmodules.module'
|| (($form->getName() == 'com_modules.module' || $form->getName() == 'com_advancedmodules.module') && $data && isset($data->module) && $data->module != 'mod_maximenuck' && $data->module != 'mod_accordeonck' && $data->module != 'mod_accordeonmenuck' && $data->module != 'mod_menu')
)
&& ($form->getName() != 'com_menus.item' && $form->getName() != 'com_menumanagerck.itemedition')
)
return;
JForm::addFormPath(MOBILEMENUCK_PATH .'/params');
JForm::addFieldPath(MOBILEMENUCK_PATH . '/elements');
// get the language
$this->loadLanguage();
// load the additional options in the module
if ($form->getName() == 'com_modules.module' || $form->getName() == 'com_advancedmodules.module') {
$form->loadFile('mobilemenuck_params', false);
}
// menu item options
if ($form->getName() == 'com_menus.item' || $form->getName() == 'com_menumanagerck.itemedition') {
$form->loadFile('mobilemenuck_itemparams', false);
}
}
/**
* Event launched when the module is rendered in the page
*
* @param object The module element.
* @param array The attributes to render the module.
* @return void
*/
public function onRenderModule($module, &$attribs) {
if (! $this->shallLoad()) return;
$app = JFactory::getApplication();
$input = $app->input;
if ($app->isClient('administrator')) {
return;
}
// exit if we are in one of these cases
if ($input->get('option', '', 'string') == 'com_modulesmanagerck'
|| $input->get('option', '', 'string') == 'com_media'
|| $input->get('format', '', 'string') == 'raw'
|| $input->get('option', '', 'string') == 'com_config'
|| $input->get('ck', '', 'string') === '1'
) {
return;
}
// $loadAssets = false;
$moduleParams = new JRegistry($module->params);
// find a module enabled for mobile
if ($moduleParams->get('mobilemenuck_enable', 0, 'int')) {
$attribs['style'] .= ' mobilemenuck';
// $loadAssets = true;
if (!empty ($module->content)) {
include_once(dirname(__FILE__) . '/defines.php');
include_once(dirname(__FILE__) . '/helpers/helper.php');
include_once(dirname(__FILE__) . '/helpers/menu.php');
include_once(dirname(__FILE__) . '/helpers/function.php');
$id = \Mobilemenuck\Helper::createIdForModule($module);
if ($module->module == 'mod_maximenuck') {
$selector = '#' . $id;
$menuselector = 'ul.maximenuck';
} else if ($module->module == 'mod_accordeonmenuck') {
$selector = '#' . $id . '-wrap';
$html = '<div id="' . $id . '-wrap">
' . $module->content . '
</div>';
$module->content = $html;
$menuselector = 'ul.menu';
} else {
if (version_compare(JVERSION, '4') >= 0) {
$selector = '#' . $id . '-wrap ul.nav';
} else {
$selector = '#' . $id . '-wrap ul.nav';
}
$html = '<div id="' . $id . '-wrap">
' . $module->content . '
</div>';
$module->content = $html;
$menuselector = 'ul';
}
$styleid = $moduleParams->get('mobilemenuck_styles');
$menubarbuttoncontent = '&#x2261;';
$topbarbuttoncontent = '×';
if ($styleid) {
$styleParams = json_decode(\Mobilemenuck\Helper::getStyleById($styleid, 'a.params'));
if (! isset($styleParams->menubarbuttoncontent)) $styleParams->menubarbuttoncontent = 'hamburger';
if (! isset($styleParams->topbarbuttoncontent)) $styleParams->topbarbuttoncontent = JText::_('JCLOSE');
$menubarbuttoncontent = \Mobilemenuck\Menu::getButtonContent($styleParams->menubarbuttoncontent, $styleParams);
$topbarbuttoncontent = \Mobilemenuck\Menu::getButtonContent($styleParams->topbarbuttoncontent, $styleParams);
}
// loads the language files
$lang = JFactory::getLanguage();
$lang->load('plg_system_mobilemenuck', JPATH_SITE . '/plugins/system/mobilemenuck', $lang->getTag(), false);
$lang->load('plg_system_mobilemenuck', JPATH_ADMINISTRATOR, $lang->getTag(), false);
$merge = $moduleParams->get('mobilemenuck_merge', '');
$mergeorder = $moduleParams->get('mobilemenuck_mergeorder', '');
if ($merge) {
$mergemodule = \Mobilemenuck\Helper::getModuleById($merge);
$merge = \Mobilemenuck\Helper::createIdForModule($mergemodule);
}
// manage the general options
$options = array(
'menuid' => $id
,'menubarbuttoncontent' => $menubarbuttoncontent
,'topbarbuttoncontent' => $topbarbuttoncontent
,'showmobilemenutext' => $moduleParams->get('mobilemenuck_showmobilemenutext', 'default')
,'mobilemenutext' => JText::_($moduleParams->get('mobilemenuck_mobilemenutext', 'PLG_MOBILEMENUCK_MENU'))
,'container' => $moduleParams->get('mobilemenuck_container', 'body')
,'detectiontype' => $moduleParams->get('mobilemenuck_detectiontype', 'resolution')
,'resolution' => $moduleParams->get('mobilemenuck_resolution', '640')
,'usemodules' => $moduleParams->get('mobilemenuck_usemodules', '0')
,'useimages' => $moduleParams->get('mobilemenuck_useimages', '0')
,'showlogo' => $moduleParams->get('mobilemenuck_showlogo', '1')
,'showdesc' => $moduleParams->get('mobilemenuck_showdesc', '0')
,'displaytype' => $moduleParams->get('mobilemenuck_displaytype', 'accordion')
,'displayeffect' => $moduleParams->get('mobilemenuck_displayeffect', 'normal')
,'menuwidth' => $moduleParams->get('mobilemenuck_menuwidth', '300')
,'openedonactiveitem' => $moduleParams->get('mobilemenuck_openedonactiveitem', '0')
,'mobilebackbuttontext' => JText::_($moduleParams->get('mobilemenuck_mobilebackbuttontext', 'PLG_MOBILEMENUCK_MOBILEBACKBUTTON'))
,'menuselector' => $menuselector
,'merge' => $merge
,'beforetext' => addslashes($moduleParams->get('mobilemenuck_beforetext', ''))
,'aftertext' => addslashes($moduleParams->get('mobilemenuck_aftertext', ''))
,'mergeorder' => $mergeorder
,'tooglebarevent' => $moduleParams->get('mobilemenuck_tooglebarevent', 'click')
,'tooglebaron' => $moduleParams->get('mobilemenuck_tooglebaron', 'all')
// Logo options
,'logo_where' => implode(',', $moduleParams->get('mobilemenuck_logo_where', array(0 => '1'))) // 1, 2, 3
,'logo_source' => $moduleParams->get('mobilemenuck_logo_source', 'maximenuck') // maximenuck, custom
,'logo_image' => $moduleParams->get('mobilemenuck_logoimage', '') // the image src
,'logo_link' => $moduleParams->get('mobilemenuck_logolink', '') // the link url
,'logo_alt' => $moduleParams->get('mobilemenuck_logoalt', '') // the alt tag
,'logo_position' => $moduleParams->get('mobilemenuck_logoposition', 'left') // left, center, right
,'logo_width' => $moduleParams->get('mobilemenuck_logowidth', '') // image width
,'logo_height' => $moduleParams->get('mobilemenuck_logoheight', '') // image height
,'logo_margintop' => $moduleParams->get('mobilemenuck_logomargintop', '') // margin top
,'logo_marginright' => $moduleParams->get('mobilemenuck_logomarginright', '') // margin right
,'logo_marginbottom' => $moduleParams->get('mobilemenuck_logomarginbottom', '') // margin bototm
,'logo_marginleft' => $moduleParams->get('mobilemenuck_logomarginleft', '') // margin left
,'lock_button' => $moduleParams->get('mobilemenuck_lock_button', '0')
,'lock_forced' => $moduleParams->get('mobilemenuck_lock_forced', '0')
,'topfixedeffect' => $moduleParams->get('mobilemenuck_topfixedeffect', 'always')
,'accordion_use_effects' => $moduleParams->get('mobilemenuck_accordion_use_effects', '0')
,'accordion_toggle' => $moduleParams->get('mobilemenuck_accordion_toggle', '0')
,'show_icons' => $moduleParams->get('mobilemenuck_show_icons', '1')
,'counter' => $moduleParams->get('mobilemenuck_counter', '0')
,'hide_desktop' => $moduleParams->get('mobilemenuck_hide_desktop', '1')
,'overlay' => $moduleParams->get('mobilemenuck_overlay', '0')
);
// manage logo options
$logoOptions = array();
if ($moduleParams->get('mobilemenuck_logo_source', 'maximenuck') == 'custom') {
$logoOptions = array(
'logoimage' => $moduleParams->get('mobilemenuck_logoimage', '')
// , 'container' => $moduleParams->get('mobilemenuck_container', 'body')
);
}
$options = array_merge($options, $logoOptions);
loadMobileMenuCK($selector,
$options
);
} else {
return;
}
}
}
public function onAfterRender() {
if (! $this->shallLoad()) return;
// exit if in admin
if (! JFactory::getApplication()->isClient('site')) return;
// get the page body
if (version_compare(JVERSION, '4') >= 0) {
$body = JFactory::getApplication()->getBody();
} else {
$body = JResponse::getBody();
}
$html = '';
if (! empty($this->modulesbar)) {
$html .= '<div id="mobilemenuck-bar-module" style="display:none;">';
foreach ($this->modulesbar as $module) {
$html .= $module;
}
$html .= '</div>';
}
if (! empty($this->modulestop)) {
$html .= '<div id="mobilemenuck-top-module" style="display:none;">';
foreach ($this->modulestop as $module) {
$html .= $module;
}
$html .= '</div>';
}
if (! empty($this->modulesbottom)) {
$html .= '<div id="mobilemenuck-bottom-module" style="display:none;">';
foreach ($this->modulesbottom as $module) {
$html .= $module;
}
$html .= '</div>';
}
if ($html) {
// add the html code
$body = str_replace("</body>", $html . "\n</body>", $body);
if (version_compare(JVERSION, '4') >= 0) {
$body = JFactory::getApplication()->setBody($body);
} else {
JResponse::setBody($body);
}
}
}
public function getModulesFromPosition($name) {
$modules = JModuleHelper::getModules($name);
return $modules;
}
/**
* Event launched when the module is rendered in the page
*
* @param object The module element.
* @param array The attributes to render the module.
* @return void
*/
public function onAfterModuleList($modules) {
$this->callLibraries();
$app = JFactory::getApplication();
$input = $app->input;
if (! $app->isClient('site')) {
return;
}
// exit if we are in one of these cases
if ($input->get('option', '', 'string') == 'com_modulesmanagerck'
|| $input->get('option', '', 'string') == 'com_media'
|| $input->get('format', '', 'string') == 'raw'
|| $input->get('option', '', 'string') == 'com_config'
|| $input->get('ck', '', 'string') === '1'
) {
return;
}
$loadAssets = false;
foreach ($modules as $module) {
$moduleParams = new JRegistry($module->params);
// find a module to use
if ($moduleParams->get('mobilemenuck_enable', 0, 'int')) {
$loadAssets = true;
$this->loadAssets($module);
$this->modules[$module->id] = $module;
}
}
if (! count($this->styles)) return;
$styles = implode("\n", $this->styles);
$styles .= '.mobilemenuck-logo { text-align: center; }';
$styles .= '.mobilemenuck-logo-left { text-align: left; }';
$styles .= '.mobilemenuck-logo-right { text-align: right; }';
$styles .= '.mobilemenuck-logo a { display: inline-block; }';
$doc = JFactory::getDocument();
// css
$doc->addStyleDeclaration($styles);
foreach ($this->styles as $id => $css) {
$this->stylesLoaded[] = $id;
}
}
/**
* Add a word into a string
*/
private function addWord($string, $toggler) {
$s = explode(' ', $string);
if (!in_array($toggler, $s)) {
array_push($s, $toggler);
}
$s = implode(' ', $s);
return $s;
}
/**
* Remove a word from a string
*/
private function removeWord($string, $toggler) {
$s = explode(' ', $string);
if (in_array($toggler, $s)) {
$s = array_diff($s, array($toggler));
}
$s = implode(' ', $s);
return $s;
}
/**
* Load the scripts and styles
*/
protected function loadAssets($module) {
// loads the helper in any case
include_once('helpers/helper.php');
$moduleParams = new JRegistry($module->params);
$doc = JFactory::getDocument();
// check if a style has been selected
$styleid = $moduleParams->get('mobilemenuck_styles');
if ($this->params->get('include_meta', '0') == '1') {
$doc->setMetaData('viewport', 'width=device-width, initial-scale=1.0');
}
if ($moduleParams->get('mobilemenuck_enable') == '1') {
$id = \Mobilemenuck\Helper::createIdForModule($module);
// look for the menu items options
if ($moduleParams->get('mobilemenuck_show_icons', '1') === '1'
&& $module->module === 'mod_menu') {
if (version_compare(JVERSION, '4') >= 0) {
$list = MenuHelper::getList($moduleParams);
} else {
$list = ModMenuHelper::getList($moduleParams);
}
$iconsList = array();
foreach ($list as $l) {
$p = $l->getParams();
$iconType = $p->get('mobilemenuck_icontype', 'image');
switch($iconType) {
case 'svg' :
$icon = $p->get('mobilemenuck_iconsvg', '');
break;
case 'css' :
$icon = $p->get('mobilemenuck_iconcss', '');
break;
case 'image':
default :
$icon = $p->get('mobilemenuck_icon', '');
break;
}
$text = $p->get('mobilemenuck_textreplacement', '');
// if ($icon || $text) {
$iconsList[$l->id] = array(
'icon' => $icon
, 'iconType' => $iconType
, 'enabled' => $p->get('mobilemenuck_enablemobile', '1')
, 'text' => htmlspecialchars($text)
);
// }
}
if (! empty($iconsList)) {
$this->scripts['iconsList'] = 'var MobilemenuckSettings = MobilemenuckSettings || {};MobilemenuckSettings[\'' . $id . '\'] = ' . json_encode($iconsList);
$doc->addScriptDeclaration($this->scripts['iconsList']);
}
}
if ($styleid) {
$styles = $this->getStylesCss($styleid);
if ($styles->state == '1') {
$module->mobilemenuck_params = new JRegistry($styles->params);
// add standard css rules
$layoutcss = '|ID| .mobilemenuck-item-counter {
display: inline-block;
margin: 0 5px;
padding: 10px;
font-size: 12px;
line-height: 0;
background: rgba(0,0,0,0.3);
color: #eee;
border-radius: 10px;
height: 20px;
transform: translate(10px,-3px);
box-sizing: border-box;
}
|ID| .mobilemenuck-backbutton svg {
width: 14px;
fill: #fff;
position: relative;
left: -5px;
top: -2px;
}
';
$layoutcss .= $styles->layoutcss;
\Mobilemenuck\Helper::makeCssReplacement($layoutcss);
// $fieldcss = str_replace('|ID|', '.mobilemenuck.' . $fieldClass, $fieldcss);
$layoutcss .= $this->getIconsStyles($moduleParams);
$layoutcss .= $this->getOverlayStyles($moduleParams);
$layoutcss = str_replace('|ID|', '[data-id="' . $id . '"]', $layoutcss);
// $layoutcss = str_replace('|ID|', '', $layoutcss);
// $fieldcss = str_replace('.fields-container', '.fields-container.' . $fieldClass, $fieldcss);
// $fieldcss = str_replace('"field-entry"]', '"field-entry"].' . $fieldClass, $fieldcss);
$this->styles[$id] = $layoutcss;
global $ckcustomgooglefontslist;
global $ckfontawesomeisloaded;
// load the Font Awesome library
if ($moduleParams->get('mobilemenuck_loadfa') == '1' && !$ckfontawesomeisloaded) {
$doc->addStylesheet(JUri::root(true) . '/media/com_mobilemenuck/assets/font-awesome.min.css');
$ckfontawesomeisloaded = true;
}
if ($module->mobilemenuck_params->get('texttextisgfont') && $module->mobilemenuck_params->get('texttextgfont')) {
$ckcustomgooglefontslist[] = $module->mobilemenuck_params->get('texttextgfont');
// $doc->addStylesheet('https://fonts.googleapis.com/css?family=' . $field->mobilemenuck_params->get('texttextgfont'));
}
if ($module->mobilemenuck_params->get('titletextisgfont') && $module->mobilemenuck_params->get('titletextgfont')) {
$ckcustomgooglefontslist[] = $module->mobilemenuck_params->get('titletextgfont');
// $doc->addStylesheet('https://fonts.googleapis.com/css?family=' . $field->mobilemenuck_params->get('titletextgfont'));
}
}
} else {
// $id = 'mobilemenuck-' . $module->id;
$layoutcss = $this->getLayoutCss();
\Mobilemenuck\Helper::makeCssReplacement($layoutcss);
$layoutcss .= $this->getIconsStyles($moduleParams);
$layoutcss .= $this->getOverlayStyles($moduleParams);
$layoutcss = str_replace('|ID|', '[data-id="' . $id . '"]', $layoutcss);
$this->styles[$id] = $layoutcss;
}
}
}
protected function getIconsStyles($moduleParams) {
$css = '';
if ($moduleParams->get('mobilemenuck_show_icons', '1') === '1') {
$iconWidth = $this->testUnit($moduleParams->get('mobilemenuck_icon_width', '32px'));
$iconHeight = $this->testUnit($moduleParams->get('mobilemenuck_icon_height', '32px'));
$iconMargin = $this->testUnit($moduleParams->get('mobilemenuck_icon_margin', '5px'));
// for images
$css .='|ID| img.mobilemenuck-icon {
width: ' . $iconWidth . ';
height: ' . $iconHeight . ';
margin: ' . $iconMargin . ';
}';
// for font icons
$css .='|ID| i.mobilemenuck-icon {
font-size: ' . $iconWidth . ';
margin: ' . $iconMargin . ';
}';
}
return $css;
}
public function getOverlayStyles($moduleParams) {
$css = '';
if ($moduleParams->get('mobilemenuck_overlay', '0') === '1') {
$css .='|ID| + #mobilemenuck-overlay {
position: fixed;
top: 0;
background: ' . $moduleParams->get('mobilemenuck_overlay_color', '#000000') . ';
opacity: ' . $moduleParams->get('mobilemenuck_overlay_opacity', '0.3') . ';
left: 0;
right: 0;
bottom: 0;
z-index: 9;
}';
}
return $css;
}
/**
* Get the css rules from the styles
*
* @param int $id
* @return string
*/
protected function getStylesCss($id) {
$db = JFactory::getDbo();
$q = "SELECT params,layoutcss,state from #__mobilemenuck_styles WHERE id = " . (int)$id;
$db->setQuery($q);
$styles = $db->loadObject();
return $styles;
}
/**
* Test if there is already a unit, else add the px
*
* @param string $value
* @return string
*/
public static function testUnit($value) {
if ((stristr($value, 'px')) OR (stristr($value, 'em')) OR (stristr($value, '%')) OR (stristr($value, 'auto')) ) {
return $value;
}
if ($value == '') {
$value = 0;
}
return $value . 'px';
}
/**
* Check if we need to load the styles in the page
*/
public function onBeforeRender() {
$this->callLibraries();
// si pas en frontend, on sort
if (! JFactory::getApplication()->isClient('site')) return;
$doc = JFactory::getDocument();
$doctype = $doc->getType();
if ($doctype !== 'html')
{
return;
}
// load the custom menus if pro version
if (\Mobilemenuck\Helper::checkIsProVersion()) $this->loadMobileMenus();
if (! empty($this->modules)) {
foreach ($this->modules as $module) {
$this->loadAssets($module);
}
foreach ($this->styles as $id => $css) {
if (in_array($id, $this->stylesLoaded)) unset($this->styles[$id]);
}
$doc = JFactory::getDocument();
if (! empty($this->styles)) {
$styles = implode("\n", $this->styles);
$styles .= '.mobilemenuck-logo { text-align: center; }';
$styles .= '.mobilemenuck-logo-left { text-align: left; }';
$styles .= '.mobilemenuck-logo-right { text-align: right; }';
$styles .= '.mobilemenuck-logo a { display: inline-block; }';
// css
$doc->addStyleDeclaration($styles);
$this->styles = Array();
}
}
if (! empty($this->scripts['iconsList'])) {
$doc->addScriptDeclaration($this->scripts['iconsList']);
}
// try to load the module positions for the mobile menu
$modulesBar = $this->getModulesFromPosition('mobilemenuck-bar');
if (! empty($modulesBar)) {
foreach ($modulesBar as $moduleBar) {
$attribs = array();
$attribs['style'] = 'none';
$this->modulesbar[] = JModuleHelper::renderModule($moduleBar, $attribs);
}
}
$modulesTop = $this->getModulesFromPosition('mobilemenuck-top');
if (! empty($modulesTop)) {
foreach ($modulesTop as $moduleTop) {
$attribs = array();
$attribs['style'] = 'none';
$this->modulestop[] = JModuleHelper::renderModule($moduleTop, $attribs);
}
}
$modulesBottom = $this->getModulesFromPosition('mobilemenuck-bottom');
if (! empty($modulesBottom)) {
foreach ($modulesBottom as $moduleBottom) {
$attribs = array();
$attribs['style'] = 'none';
$this->modulesbottom[] = JModuleHelper::renderModule($moduleBottom, $attribs);
}
}
}
/**
* Load the fonts only if not already registered by another extension
*/
public function loadCustomGoogleFontsList() {
global $ckcustomgooglefontslist;
if (! empty($ckcustomgooglefontslist)) {
$doc = JFactory::getDocument();
foreach ($ckcustomgooglefontslist as $ckcustomgooglefont) {
$doc->addStylesheet('//fonts.googleapis.com/css?family=' . $ckcustomgooglefont);
}
}
}
private function loadMobileMenus() {
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from('#__mobilemenuck_menus')
->where('state = 1');
$db->setQuery($query);
$menus = $db->loadObjectList();
if (! empty($menus)) {
include_once('helpers/helper.php');
include_once('helpers/menu.php');
include_once('helpers/function.php');
}
foreach ($menus as $menu) {
if ($menu->params) {
$params = new JRegistry(unserialize($menu->params));
}
// if no selector given, continue because the menu can not work
if (! $params->get('selector', '')) continue;
// get the language
$this->loadLanguage();
$styleid = $menu->style;
$id = $params->get('menuid', 'mobilemenuck-' . (int) (microtime(true) * 100));
if ($styleid) {
$styles = \Mobilemenuck\Helper::getStyleById($styleid, 'params,layoutcss,state', 'object');
if ($styles->state == '1') {
// $module->mobilemenuck_params = new JRegistry($styles->params);
$layoutcss = $styles->layoutcss;
\Mobilemenuck\Helper::makeCssReplacement($layoutcss);
// $fieldcss = str_replace('|ID|', '.mobilemenuck.' . $fieldClass, $fieldcss);
$layoutcss = str_replace('|ID|', '[data-id="' . $id . '"]', $layoutcss);
// $layoutcss = str_replace('|ID|', '', $layoutcss);
// $fieldcss = str_replace('.fields-container', '.fields-container.' . $fieldClass, $fieldcss);
// $fieldcss = str_replace('"field-entry"]', '"field-entry"].' . $fieldClass, $fieldcss);
// $this->styles[$id] = $layoutcss;
include_once('helpers/' . MOBILEMENUCK_PLATFORM . '/loader.php');
\Mobilemenuck\CKLoader::loadStyleDeclaration($layoutcss);
}
} else {
$layoutcss = $this->getLayoutCss();
\Mobilemenuck\Helper::makeCssReplacement($layoutcss);
$layoutcss = str_replace('|ID|', '[data-id="' . $id . '"]', $layoutcss);
// $this->styles[$id] = $layoutcss;
include_once('helpers/' . MOBILEMENUCK_PLATFORM . '/loader.php');
\Mobilemenuck\CKLoader::loadStyleDeclaration($layoutcss);
}
// create a unique ID for the menu
// $menuid = 'mobilemenuck-' . (int) (microtime(true) * 100);
$menubarbuttoncontent = '&#x2261;';
$topbarbuttoncontent = '×';
if ($styleid) {
// $styleParams = json_decode(\Mobilemenuck\Helper::getStyleById($styleid, 'a.params'));
// $menubarbuttoncontent = \Mobilemenuck\Menu::getButtonContent($styleParams->menubarbuttoncontent, $styleParams);
// $topbarbuttoncontent = \Mobilemenuck\Menu::getButtonContent($styleParams->topbarbuttoncontent, $styleParams);
}
\Mobilemenuck\Menu::load($params->get('selector', ''),
array(
'menuid' => $id
,'menubarbuttoncontent' => $menubarbuttoncontent
,'topbarbuttoncontent' => $topbarbuttoncontent
,'showmobilemenutext' => $params->get('showmobilemenutext', 'default')
,'mobilemenutext' => JText::_($params->get('mobilemenutext', 'PLG_MOBILEMENUCK_MENU'))
,'container' => $params->get('container', 'body')
,'detectiontype' => $params->get('detectiontype', 'resolution')
,'resolution' => $params->get('resolution', '640')
,'usemodules' => $params->get('usemodules', '0')
,'useimages' => $params->get('useimages', '0')
,'showlogo' => $params->get('showlogo', '1')
,'showdesc' => $params->get('showdesc', '0')
,'displaytype' => $params->get('displaytype', 'accordion')
,'displayeffect' => $params->get('displayeffect', 'normal')
,'menuwidth' => $params->get('menuwidth', '300')
,'openedonactiveitem' => $params->get('openedonactiveitem', '0')
,'mobilebackbuttontext' => JText::_($params->get('mobilebackbuttontext', 'PLG_MOBILEMENUCK_MOBILEBACKBUTTON'))
,'menuselector' => $params->get('menuselector', 'ul')
,'childselector' => $params->get('childselector', 'li')
,'beforetext' => addslashes($params->get('beforetext', ''))
,'aftertext' => addslashes($params->get('aftertext', ''))
// // Logo options
,'logo_where' => implode(',', $params->get('logo_where', array(0 => '1'), 'array')) // 1, 2, 3
,'logo_source' => $params->get('logo_source', 'maximenuck') // maximenuck, custom
,'logo_image' => $params->get('logoimage', '') // the image src
,'logo_link' => $params->get('logolink', '') // the link url
,'logo_alt' => $params->get('logoalt', '') // the alt tag
,'logo_position' => $params->get('logoposition', 'left') // left, center, right
,'logo_width' => $params->get('logowidth', '') // image width
,'logo_height' => $params->get('logoheight', '') // image height
,'logo_margintop' => $params->get('logomargintop', '') // margin top
,'logo_marginright' => $params->get('logomarginright', '') // margin right
,'logo_marginbottom' => $params->get('logomarginbottom', '') // margin bototm
,'logo_marginleft' => $params->get('logomarginleft', '') // margin left
,'lock_button' => $params->get('lock_button', '0')
,'lock_forced' => $params->get('lock_forced', '0')
,'topfixedeffect' => $params->get('topfixedeffect', 'always')
,'accordion_use_effects' => $params->get('accordion_use_effects', '0')
,'accordion_toggle' => $params->get('accordion_toggle', '0')
,'show_icons' => $params->get('show_icons', '1')
,'counter' => $params->get('mobilemenuck_counter', '0')
,'hide_desktop' => $params->get('mobilemenuck_hide_desktop', '1')
,'overlay' => $params->get('mobilemenuck_overlay', '0')
)
);
}
}
public static function getLayoutCss() {
$doc = JFactory::getDocument();
$overrideSrc = null;
if (isset($doc->template) && $doc->template) {
$template = $doc->template;
} else {
$db = JFactory::getDBO();
$query = "SELECT template FROM #__template_styles WHERE client_id = 0 AND home = 1";
$db->setQuery($query);
$template = $db->loadResult();
}
$overrideSrc = JPATH_ROOT . '/templates/' . $template . '/css/mobilemenuck.css';
$overrideSrc2 = JPATH_ROOT . '/media/templates/site/' . $template . '/css/mobilemenuck.css';
if (file_exists($overrideSrc)) {
$layoutcss = file_get_contents($overrideSrc);
} else if (file_exists($overrideSrc2)) {
$layoutcss = file_get_contents($overrideSrc2);
} else {
$layoutcss = file_get_contents(MOBILEMENUCK_PATH . '/default.txt');
}
return $layoutcss;
}
}

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<extension
type="plugin"
version="3"
group="system"
method="upgrade">
<name>System - Mobile Menu CK</name>
<author>Cédric KEIFLIN</author>
<creationDate>September 2018</creationDate>
<copyright>Cédric KEIFLIN</copyright>
<license>GNU/GPL 3 http://www.gnu.org/licenses/gpl.html</license>
<authorEmail>ced1870@gmail.com</authorEmail>
<authorUrl>https://www.joomlack.fr</authorUrl>
<version>1.5.15</version>
<description>PLG_MOBILEMENUCK_XML_DESC</description>
<files>
<file plugin="mobilemenuck">mobilemenuck.php</file>
<filename>default.txt</filename>
<filename>defines.php</filename>
<folder>elements</folder>
<folder>helpers</folder>
<folder>language</folder>
<folder>params</folder>
</files>
<media folder="media" destination="plg_system_mobilemenuck">
<folder>assets</folder>
</media>
<languages folder="language">
<language tag="en-GB">en-GB/en-GB.plg_system_mobilemenuck.ini</language>
<language tag="en-GB">en-GB/en-GB.plg_system_mobilemenuck.sys.ini</language>
<language tag="fr-FR">fr-FR/fr-FR.plg_system_mobilemenuck.ini</language>
<language tag="fr-FR">fr-FR/fr-FR.plg_system_mobilemenuck.sys.ini</language>
</languages>
<config>
<fields name="params">
<fieldset name="basic" addfieldpath="/plugins/system/mediabox_ck/elements">
<field
name="include_meta"
type="radio"
default="0"
label="MOBILEMENUCK_INCLUDE_META"
class="btn-group"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
</fields>
</config>
</extension>

View File

@@ -0,0 +1 @@
<html><body bgcolor="#FFFFFF"></body></html>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<form>
<fields name="params">
<fieldset name="mobilemenuck_itemparams" label="PLG_MOBILEMENUCK_FIELDSET_LABEL">
<field
name="mobilemenuck_icontype"
type="list"
default="image"
label="PLG_MOBILEMENUCK_ICONTYPE_LABEL"
class="btn-group" >
<option value="image">PLG_MOBILEMENUCK_ICONTYPE_IMAGE</option>
<option value="css">PLG_MOBILEMENUCK_ICONTYPE_CSS</option>
</field>
<field
name="mobilemenuck_icon"
type="media"
default=""
label="PLG_MOBILEMENUCK_MOBILEICON_LABEL"
description="PLG_MOBILEMENUCK_MOBILEICON_DESC"
showon="mobilemenuck_icontype:image"
/>
<field
name="mobilemenuck_iconsvg"
type="text"
default=""
label="PLG_MOBILEMENUCK_MOBILEICONSVG_LABEL"
showon="mobilemenuck_icontype:svg"
/>
<field
name="mobilemenuck_iconcss"
type="text"
default=""
label="PLG_MOBILEMENUCK_MOBILEICONCSS_LABEL"
showon="mobilemenuck_icontype:css"
/>
<field
name="mobilemenuck_textreplacement"
type="text"
default=""
label="PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_LABEL"
description="PLG_MOBILEMENUCK_MOBILETEXTREPLACEMENT_DESC"
icon="text_signature.png" />
<field
name="mobilemenuck_enablemobile"
type="radio"
default="1"
label="PLG_MOBILEMENUCK_ENABLEMOBILE_LABEL"
description="PLG_MOBILEMENUCK_ENABLEMOBILE_DESC"
icon="phone.png"
class="btn-group" >
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
</fields>
</form>

View File

@@ -0,0 +1,510 @@
<?xml version="1.0" encoding="utf-8"?>
<form>
<fields name="params">
<fieldset name="mobilemenuck" label="PLG_MOBILEMENUCK_PARAMS_FIELDSET_LABEL">
<field
name="mobilemenuck_info"
type="mobilemenuckinfo"
/>
<field
name="mobilemenuck_enable"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_ENABLE_LABEL"
description="PLG_MOBILEMENUCK_ENABLE_DESC"
class="btn-group"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_styles"
type="mobilemenuckicon"
label="PLG_MOBILEMENUCK_SELECT_STYLE_LABEL"
description="PLG_MOBILEMENUCK_SELECT_STYLE_DESC"
default=""
showon=""
/>
<field
name="mobilemenuck_merge"
type="ckmoduleselect"
label="PLG_MOBILEMENUCK_MERGE_WITH_LABEL"
description="PLG_MOBILEMENUCK_MERGE_WITH_DESC"
default=""
/>
<field
name="mobilemenuck_detectiontype"
type="list"
default="resolution"
label="PLG_MOBILEMENUCK_DETECTIONTYPE_LABEL"
description="PLG_MOBILEMENUCK_DETECTIONTYPE_DESC"
icon="application_form_magnify.png"
>
<option value="resolution">PLG_MOBILEMENUCK_RESOLUTION</option>
<option value="tablet">PLG_MOBILEMENUCK_TABLET</option>
<option value="phone">PLG_MOBILEMENUCK_PHONE</option>
<option value="all">PLG_MOBILEMENUCK_ALL_DEVICES</option>
</field>
<field
name="mobilemenuck_resolution"
type="text"
label="PLG_MOBILEMENUCK_MOBILERESOLUTION_LABEL"
description="PLG_MOBILEMENUCK_MOBILERESOLUTION_DESC"
icon="width.png"
suffix="px"
default="640"
showon="mobilemenuck_detectiontype:resolution"
/>
<field
name="mobilemenuck_container"
type="list"
default="body"
label="PLG_MOBILEMENUCK_CONTAINER_LABEL"
description="PLG_MOBILEMENUCK_CONTAINER_DESC"
icon="application_side_list.png"
>
<option value="body">PLG_MOBILEMENUCK_BODY</option>
<option value="menucontainer">PLG_MOBILEMENUCK_MENUCONTAINER</option>
<option value="topfixed">PLG_MOBILEMENUCK_TOPFIXED</option>
</field>
<field
name="mobilemenuck_topfixedeffect"
type="list"
default="always"
label="PLG_MOBILEMENUCK_TOPFIXED_EFFECT_LABEL"
description="PLG_MOBILEMENUCK_TOPFIXED_EFFECT_DESC"
showon="mobilemenuck_container:topfixed"
>
<option value="always">PLG_MOBILEMENUCK_ALWAYS</option>
<option value="onscroll">PLG_MOBILEMENUCK_ONSCROLL</option>
</field>
<field
name="mobilemenuck_displayeffect"
type="list"
default="normal"
label="PLG_MOBILEMENUCK_DISPLAYEFFECT_LABEL"
description="PLG_MOBILEMENUCK_DISPLAYEFFECT_DESC"
icon="chart_curve.png"
>
<option value="normal">PLG_MOBILEMENUCK_NORMAL</option>
<option value="slideleft">PLG_MOBILEMENUCK_SLIDELEFT</option>
<option value="slideright">PLG_MOBILEMENUCK_SLIDERIGHT</option>
<option value="slideleftover">PLG_MOBILEMENUCK_SLIDELEFT_OVER</option>
<option value="sliderightover">PLG_MOBILEMENUCK_SLIDERIGHT_OVER</option>
<option value="topfixed">PLG_MOBILEMENUCK_TOPFIXED</option>
<option value="open">PLG_MOBILEMENUCK_OPEN_SLIDE</option>
</field>
<field
name="mobilemenuck_menuwidth"
type="text"
default="300"
label="PLG_MOBILEMENUCK_MOBILEMENUWIDTH_LABEL"
description="PLG_MOBILEMENUCK_MOBILEMENUWIDTH_DESC"
icon="width.png"
showon="mobilemenuck_displayeffect:slideleft,slideright,slideleftover,sliderightover"
/>
<field
name="mobilemenuck_displaytype"
type="list"
default="accordion"
label="PLG_MOBILEMENUCK_DISPLAYTYPE_LABEL"
description="PLG_MOBILEMENUCK_DISPLAYTYPE_DESC"
icon="application_view_list.png"
>
<option value="flat">PLG_MOBILEMENUCK_FLAT</option>
<option value="accordion">PLG_MOBILEMENUCK_ACCORDION</option>
<option value="fade">PLG_MOBILEMENUCK_FADELEVELS</option>
<option value="push">PLG_MOBILEMENUCK_PUSHLEVELS</option>
<option value="flyout">PLG_MOBILEMENUCK_FLYOUT</option>
</field>
<field
name="mobilemenuck_openedonactiveitem"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_LABEL"
description="PLG_MOBILEMENUCK_OPENED_ON_ACTIVE_ITEM_DESC"
class="btn-group"
icon="chart_organisation_add.png"
showon="mobilemenuck_displaytype:accordion"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_accordion_use_effects"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_ACCORDION_EFFECT_LABEL"
description="PLG_MOBILEMENUCK_ACCORDION_EFFECT_DESC"
class="btn-group"
showon="mobilemenuck_displaytype:accordion"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_accordion_toggle"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_ACCORDION_TOGGLE_LABEL"
description="PLG_MOBILEMENUCK_ACCORDION_TOGGLE_DESC"
class="btn-group"
showon="mobilemenuck_displaytype:accordion"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_tooglebarevent"
type="list"
default="click"
label="PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_LABEL"
description="PLG_MOBILEMENUCK_TOGGLE_BAR_EVENT_DESC"
icon="application_view_list.png"
>
<option value="click">PLG_MOBILEMENUCK_CLICK</option>
<option value="mouseover">PLG_MOBILEMENUCK_MOUSEOVER</option>
</field>
<field
name="mobilemenuck_tooglebaron"
type="list"
default="all"
label="PLG_MOBILEMENUCK_TOGGLE_BAR_ON_LABEL"
description="PLG_MOBILEMENUCK_TOGGLE_BAR_ON_DESC"
icon="application_view_list.png"
>
<option value="all">PLG_MOBILEMENUCK_FULL_BAR</option>
<option value="button">PLG_MOBILEMENUCK_ONLY8BUTTON</option>
</field>
<field
name="mobilemenuck_useimages"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_MOBILEUSEIMAGE_LABEL"
description="PLG_MOBILEMENUCK_MOBILEUSEIMAGE_DESC"
class="btn-group"
icon="application_view_gallery.png"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_usemodules"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_MOBILEUSEMODULE_LABEL"
description="PLG_MOBILEMENUCK_MOBILEUSEMODULE_DESC"
class="btn-group"
icon="application_form.png"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_showdesc"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_SHOWDESC_LABEL"
description="PLG_MOBILEMENUCK_SHOWDESC_DESC"
class="btn-group"
icon="application_view_list.png"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_lock_button"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_LOCK_BUTTON_LABEL"
description="PLG_MOBILEMENUCK_LOCK_BUTTON_DESC"
class="btn-group"
showon="mobilemenuck_lock_forced:0"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_lock_forced"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_LOCK_FORCED_LABEL"
description="PLG_MOBILEMENUCK_LOCK_FORCED_DESC"
class="btn-group"
showon="mobilemenuck_lock_button:0"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_counter"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_COUNTER_LABEL"
class="btn-group"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_hide_desktop"
type="radio"
default="1"
label="PLG_MOBILEMENUCK_HIDE_DESKTOP_LABEL"
class="btn-group"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_overlay"
type="radio"
default="1"
label="PLG_MOBILEMENUCK_OVERLAY_LABEL"
class="btn-group"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_overlay_color"
type="color"
default="#000000"
label="PLG_MOBILEMENUCK_OVERLAY_COLOR_LABEL"
showon="mobilemenuck_overlay:1"
/>
<field
name="mobilemenuck_overlay_opacity"
type="text"
default="0.3"
label="PLG_MOBILEMENUCK_OVERLAY_OPACITY_LABEL"
showon="mobilemenuck_overlay:1"
/>
<field
name="mobilemenuck_iconspacer"
type="mobilemenuckspacer"
label="PLG_MOBILEMENUCK_ICONS_LABEL"
style="title"
/>
<field
name="mobilemenuck_icononlypro"
type="mobilemenuckonlypro"
/>
<field
name="mobilemenuck_icon_video"
type="mobilemenuckvideo"
url="https://youtu.be/D_6exvwX8wQ"
/>
<field
name="mobilemenuck_show_icons"
type="radio"
default="0"
label="PLG_MOBILEMENUCK_SHOW_ICONS_LABEL"
class="btn-group"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_icon_width"
type="text"
default="32px"
label="PLG_MOBILEMENUCK_ICON_WIDTH_LABEL"
showon="mobilemenuck_show_icons:1"
/>
<field
name="mobilemenuck_icon_height"
type="text"
default="32px"
label="PLG_MOBILEMENUCK_ICON_HEIGHT_LABEL"
showon="mobilemenuck_show_icons:1"
/>
<field
name="mobilemenuck_icon_margin"
type="text"
default="5px"
label="PLG_MOBILEMENUCK_ICON_MARGIN_LABEL"
showon="mobilemenuck_show_icons:1"
/>
<field
name="mobilemenuck_textspacer"
type="mobilemenuckspacer"
label="PLG_MOBILEMENUCK_TEXT_LABEL"
style="title"
/>
<field
name="mobilemenuck_showmobilemenutext"
type="list"
default="default"
label="PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_LABEL"
description="PLG_MOBILEMENUCK_SHOWMOBILEMENUTEXT_DESC"
icon="font.png"
>
<option value="default">PLG_MOBILEMENUCK_DEFAULTTEXT</option>
<option value="custom">PLG_MOBILEMENUCK_CUSTOMTEXT</option>
<option value="none">PLG_MOBILEMENUCK_NONE</option>
</field>
<field
name="mobilemenuck_mobilemenutext"
type="text"
default=""
label="PLG_MOBILEMENUCK_MOBILEMENUTEXT_LABEL"
description="PLG_MOBILEMENUCK_MOBILEMENUTEXT_DESC"
icon="text_signature.png"
showon="mobilemenuck_showmobilemenutext:custom"
/>
<field
name="mobilemenuck_beforetext"
type="text"
default=""
label="PLG_MOBILEMENUCK_BEFORETEXT_LABEL"
description="PLG_MOBILEMENUCK_BEFORETEXT_DESC"
icon="text_signature.png"
filter="raw"
/>
<field
name="mobilemenuck_aftertext"
type="text"
default=""
label="PLG_MOBILEMENUCK_AFTERTEXT_LABEL"
description="PLG_MOBILEMENUCK_AFTERTEXT_DESC"
icon="text_signature.png"
filter="raw"
/>
<field
name="mobilemenuck_logospacer"
type="mobilemenuckspacer"
label="PLG_MOBILEMENUCK_LOGO_LABEL"
style="title"
/>
<field
name="mobilemenuck_showlogo"
type="list"
default="1"
label="PLG_MOBILEMENUCK_SHOWLOGO_LABEL"
description="PLG_MOBILEMENUCK_SHOWLOGO_DESC"
icon="image.png"
>
<option value="0">JNO</option>
<option value="1">JYES</option>
</field>
<field
name="mobilemenuck_logo_where"
type="list"
multiple="true"
default="1"
label="PLG_MOBILEMENUCK_LOGO_WHERE_LABEL"
description="PLG_MOBILEMENUCK_LOGO_WHERE_DESC"
icon="image.png"
showon="mobilemenuck_showlogo!:0"
>
<option value="1">PLG_MOBILEMENUCK_SHOWLOGO_MOBILE</option>
<option value="2">PLG_MOBILEMENUCK_SHOWLOGO_MENUBAR</option>
<option value="3">PLG_MOBILEMENUCK_SHOWLOGO_TOPBAR</option>
</field>
<field
name="mobilemenuck_logo_source"
type="list"
default="maximenuck"
label="PLG_MOBILEMENUCK_LOGO_SOURCE_LABEL"
description="PLG_MOBILEMENUCK_LOGO_SOURCE_DESC"
icon="image.png"
showon="mobilemenuck_showlogo!:0"
>
<option value="maximenuck">Maximenu CK</option>
<option value="custom">PLG_MOBILEMENUCK_CUSTOM_LOGO</option>
</field>
<field
name="mobilemenuck_logoimage"
type="media"
icon="image.png"
label="PLG_MOBILEMENUCK_LOGOIMAGE_LABEL"
description="PLG_MOBILEMENUCK_LOGOIMAGE_DESC"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logolink"
type="text"
icon="link_go.png"
label="PLG_MOBILEMENUCK_LOGOLINK_LABEL"
description="PLG_MOBILEMENUCK_LOGOLINK_DESC"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logoalt"
type="text"
icon="font.png"
label="PLG_MOBILEMENUCK_LOGOALT_LABEL"
description="PLG_MOBILEMENUCK_LOGOALT_DESC"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logoposition"
type="list"
default="left"
label="PLG_MOBILEMENUCK_LOGOPOSITION_LABEL"
description="PLG_MOBILEMENUCK_LOGOPOSITION_DESC"
icon="arrow_direction.png"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
>
<option value="left">PLG_MOBILEMENUCK_LEFT</option>
<option value="center">PLG_MOBILEMENUCK_CENTER</option>
<option value="right">PLG_MOBILEMENUCK_RIGHT</option>
</field>
<field
name="mobilemenuck_logowidth"
type="text"
label="PLG_MOBILEMENUCK_LOGOWIDTH_LABEL"
description="PLG_MOBILEMENUCK_LOGOWIDTH_DESC"
icon="width.png"
suffix="px"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logoheight"
type="text"
label="PLG_MOBILEMENUCK_LOGOHEIGHT_LABEL"
description="PLG_MOBILEMENUCK_LOGOHEIGHT_DESC"
icon="height.png"
suffix="px"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logomargintop"
type="text"
default=""
label="PLG_MOBILEMENUCK_MARGINTOP_LABEL"
description="PLG_MOBILEMENUCK_MARGINTOP_DESC"
icon="margin_top.png"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logomarginright"
type="text"
default=""
label="PLG_MOBILEMENUCK_MARGINRIGHT_LABEL"
description="PLG_MOBILEMENUCK_MARGINRIGHT_DESC"
icon="margin_right.png"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logomarginbottom"
type="text"
default=""
label="PLG_MOBILEMENUCK_MARGINBOTTOM_LABEL"
description="PLG_MOBILEMENUCK_MARGINBOTTOM_DESC"
icon="margin_bottom.png"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
<field
name="mobilemenuck_logomarginleft"
type="text"
default=""
label="PLG_MOBILEMENUCK_MARGINLEFT_LABEL"
description="PLG_MOBILEMENUCK_MARGINLEFT_DESC"
icon="margin_left.png"
showon="mobilemenuck_showlogo!:0[AND]mobilemenuck_logo_source:custom"
/>
</fieldset>
</fields>
</form>