Changed the compiler gif image, and improved the overall compiler GUI experience. Added the feature for dynamic hashing of strings and or files.
This commit is contained in:
parent
9f59578f8c
commit
e579cd421a
@ -143,13 +143,13 @@ TODO
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
|
||||
+ *First Build*: 30th April, 2015
|
||||
+ *Last Build*: 2nd February, 2021
|
||||
+ *Last Build*: 19th February, 2021
|
||||
+ *Version*: 2.12.6
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **293026**
|
||||
+ *Field count*: **1611**
|
||||
+ *File count*: **1934**
|
||||
+ *Line count*: **291909**
|
||||
+ *Field count*: **1627**
|
||||
+ *File count*: **1935**
|
||||
+ *Folder count*: **322**
|
||||
|
||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
|
@ -143,13 +143,13 @@ TODO
|
||||
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
|
||||
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
|
||||
+ *First Build*: 30th April, 2015
|
||||
+ *Last Build*: 2nd February, 2021
|
||||
+ *Last Build*: 19th February, 2021
|
||||
+ *Version*: 2.12.6
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **293026**
|
||||
+ *Field count*: **1611**
|
||||
+ *File count*: **1934**
|
||||
+ *Line count*: **291909**
|
||||
+ *Field count*: **1627**
|
||||
+ *File count*: **1935**
|
||||
+ *Folder count*: **322**
|
||||
|
||||
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
|
||||
|
@ -10,4 +10,10 @@
|
||||
|
||||
/* CSS Document */
|
||||
|
||||
|
||||
html, body {
|
||||
background-color: #fefcfe !important;
|
||||
}
|
||||
.jcb-sponsor-banner {
|
||||
-webkit-box-shadow: 0 0 7px 1px #f0f0f0;
|
||||
box-shadow: 0 0 7px 1px #f0f0f0;
|
||||
}
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 395 KiB |
@ -1056,7 +1056,6 @@ class Compiler extends Infusion
|
||||
. '.zip'
|
||||
);
|
||||
}
|
||||
|
||||
// move to sales server host
|
||||
if ($this->componentData->add_sales_server == 1
|
||||
&& $this->dynamicIntegration)
|
||||
|
@ -5245,6 +5245,8 @@ class Get
|
||||
{
|
||||
$script = $this->setGuiCodePlaceholder($script, $config);
|
||||
}
|
||||
// add Dynamic HASHING option of a file/string
|
||||
$script = $this->setDynamicHASHING($script);
|
||||
// add base64 locking option of a string
|
||||
$script = $this->setBase64LOCK($script);
|
||||
// load the script
|
||||
@ -10796,6 +10798,67 @@ class Get
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a hash of a file and/or string
|
||||
*
|
||||
* @param string $string The code string
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
*/
|
||||
protected function setDynamicHASHING($script)
|
||||
{
|
||||
// check if we should hash a string
|
||||
if (strpos($script, 'HASHSTRING((((') !== false)
|
||||
{
|
||||
// get the strings
|
||||
$values = ComponentbuilderHelper::getAllBetween(
|
||||
$script, 'HASHSTRING((((', '))))'
|
||||
);
|
||||
$locker = array();
|
||||
// convert them
|
||||
foreach ($values as $value)
|
||||
{
|
||||
$locker['HASHSTRING((((' . $value . '))))']
|
||||
= md5($value);
|
||||
}
|
||||
|
||||
// update the script
|
||||
return $this->setPlaceholders($script, $locker);
|
||||
}
|
||||
// check if we should hash a file
|
||||
if (strpos($script, 'HASHFILE((((') !== false)
|
||||
{
|
||||
// get the strings
|
||||
$values = ComponentbuilderHelper::getAllBetween(
|
||||
$script, 'HASHFILE((((', '))))'
|
||||
);
|
||||
$locker = array();
|
||||
// convert them
|
||||
foreach ($values as $path)
|
||||
{
|
||||
// we first get the file
|
||||
if ($value = ComponentbuilderHelper::getFileContents($path))
|
||||
{
|
||||
// now we hash the file content
|
||||
$locker['HASHFILE((((' . $path . '))))']
|
||||
= md5($value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// could not retrieve the file so we show error
|
||||
$locker['HASHFILE((((' . $path . '))))']
|
||||
= 'ERROR';
|
||||
}
|
||||
}
|
||||
|
||||
// update the script
|
||||
return $this->setPlaceholders($script, $locker);
|
||||
}
|
||||
|
||||
return $script;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lock a string with bsae64 (basic)
|
||||
*
|
||||
|
@ -1970,30 +1970,147 @@ abstract class ComponentbuilderHelper
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The array of dynamic content
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $dynamicContent = array(
|
||||
// The banners by size
|
||||
// The banners by size (width - height)
|
||||
'banner' => array(
|
||||
'728-90' => array(
|
||||
'<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="https://cdn.joomla.org/volunteers/joomla-heart-wide.gif" alt="Joomla! Volunteers Portal" width="728" height="90" border="0"></a>',
|
||||
'<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img alt="Joomla! Community Magazine | Because community matters..." src="https://magazine.joomla.org/images/banners/JCM_2010_728x90.png" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-tlwebdesign" target="_blank" title="tlwebdesign a JCB sponsor | Because community matters..."><img alt="tlwebdesign a JCB sponsor | Because community matters..." src="https://www.joomlacomponentbuilder.com/images/banners/tlwebdesign_jcb_sponsor_728_90.png" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-vdm" target="_blank" title="VDM a JCB sponsor | Because community matters..."><img alt="VDM a JCB sponsor | Because community matters..." src="https://www.joomlacomponentbuilder.com/images/banners/vdm_jcb_sponsor_728_90.gif" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-agerix" target="_blank" title="Agerix a JCB sponsor | Because community matters..."><img alt="Agerix a JCB sponsor | Because community matters..." src="https://allmycms.com/images/banners/agerix/agerix-loves-jcb-728-90.gif" width="728" height="90" border="0" /></a>'
|
||||
array(
|
||||
'url' => 'https://cdn.joomla.org/volunteers/joomla-heart-wide.gif',
|
||||
'hash' => 'f857e3a38facaeac9eba3cffa912b620',
|
||||
'html' => '<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/joomla-heart-wide.gif" alt="Joomla! Volunteers Portal" width="728" height="90" border="0"></a>'),
|
||||
array(
|
||||
'url' => 'https://magazine.joomla.org/images/banners/JCM_2010_728x90.png',
|
||||
'hash' => '4083c66f996279fd5a76adffc3a7d194',
|
||||
'html' => '<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img alt="Joomla! Community Magazine | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/JCM_2010_728x90.png" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/banners/tlwebdesign_jcb_sponsor_728_90.png',
|
||||
'hash' => 'd19be1f9f5b2049ff901096aafc246be',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-tlwebdesign" target="_blank" title="tlwebdesign a JCB sponsor | Because community matters..."><img alt="tlwebdesign a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/tlwebdesign_jcb_sponsor_728_90.png" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/banners/vdm_jcb_sponsor_728_90.gif',
|
||||
'hash' => '84478dfa0cd880395815e0ee026812a4',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-vdm" target="_blank" title="VDM a JCB sponsor | Because community matters..."><img alt="VDM a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/vdm_jcb_sponsor_728_90.gif" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://allmycms.com/images/banners/agerix/agerix-loves-jcb-728-90.gif',
|
||||
'hash' => 'b24c0726aa809cdcc04bcffe7e1e1529',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-agerix" target="_blank" title="Agerix a JCB sponsor | Because community matters..."><img alt="Agerix a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/agerix-loves-jcb-728-90.gif" width="728" height="90" border="0" /></a>')
|
||||
),
|
||||
'160-600' => array(
|
||||
'<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="https://cdn.joomla.org/volunteers/joomla-heart-tall.gif" alt="Joomla! Volunteers Portal" width="160" height="600" border="0"></a>',
|
||||
'<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img src="https://magazine.joomla.org/images/banners/JCM_2010_120x600.png" alt="Joomla! Community Magazine | Because community matters..." width="120" height="600" border="0"/></a>'
|
||||
array(
|
||||
'url' => 'https://cdn.joomla.org/volunteers/joomla-heart-tall.gif',
|
||||
'hash' => '9a75e4929b86c318128b53cf78251678',
|
||||
'html' => '<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/joomla-heart-tall.gif" alt="Joomla! Volunteers Portal" width="160" height="600" border="0"></a>'),
|
||||
array(
|
||||
'url' => 'https://magazine.joomla.org/images/banners/JCM_2010_120x600.png',
|
||||
'hash' => '5389cf3be8569cb3f6793e8bd4013d19',
|
||||
'html' => '<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/JCM_2010_120x600.png" alt="Joomla! Community Magazine | Because community matters..." width="120" height="600" border="0"/></a>')
|
||||
)
|
||||
),
|
||||
// The build-gif by size
|
||||
// The build-gif by size (width - height)
|
||||
'builder-gif' => array(
|
||||
'707-400' => array(
|
||||
'<img src="components/com_componentbuilder/assets/images/ajax-loader.gif" />'
|
||||
'480-540' => array(
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/1.gif',
|
||||
'hash' => 'ce6e36456fa794ba95d981547b2f54f8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/1.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/2.gif',
|
||||
'hash' => '0a54dbc393359747e33db90cabb1e2d7',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/2.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/3.gif',
|
||||
'hash' => '4e5498713ff69a64a0a79dbf620372a3',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/3.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/4.gif',
|
||||
'hash' => '3554ffab2a6df95a116fd9f0db63925c',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/4.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/5.gif',
|
||||
'hash' => '08f0cdf188593eca65c6dafd7af27ef9',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/5.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/6.gif',
|
||||
'hash' => '103b46a7ac3fcb974e25d06f417a4e87',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/6.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/7.gif',
|
||||
'hash' => 'ffa8547099b7286f89ab7ff5a140dd90',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/7.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/8.gif',
|
||||
'hash' => '316df780f9e4ce81200a65d3c4303c41',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/8.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/9.gif',
|
||||
'hash' => '9ab6ba78b6e63a285fdef2ff5e447c93',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/9.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/10.gif',
|
||||
'hash' => 'cd9abaa1cb95f51a70916da6b70614f2',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/10.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/11.gif',
|
||||
'hash' => 'cfe53095b5249618e2348223b89262b9',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/11.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/12.gif',
|
||||
'hash' => '15a6690647d5160d67c80ce4dd1f5602',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/12.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/13.gif',
|
||||
'hash' => '2f77562e92c8a3b7c47664c98f551fe8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/13.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/14.gif',
|
||||
'hash' => '46db15517ef5bd063be85134e1cc575d',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/14.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/15.gif',
|
||||
'hash' => 'e6c96eff157ea648ceb1583f2cc22544',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/15.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/16.gif',
|
||||
'hash' => '76010b7d1f99952eb9645df660467ae8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/16.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/17.gif',
|
||||
'hash' => '021219ddd72d8fcfc7f80bd4a874d651',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/17.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/18.gif',
|
||||
'hash' => '383af3179d4ae27301c1292e630d7155',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/18.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/19.gif',
|
||||
'hash' => '8537e6d7be93447241b521f851e8a61d',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/19.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/20.gif',
|
||||
'hash' => '10d96f70e3d43086a925b00a7dc0022e',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/20.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/21.gif',
|
||||
'hash' => '161de9865b171b44039353b8d50491d3',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/21.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/22.gif',
|
||||
'hash' => '6a2354e43eb97d278d74bb2c12890988',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/22.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/23.gif',
|
||||
'hash' => '2cb6e2f9562a8dc8eef6d5d8d1a84f5e',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/23.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/24.gif',
|
||||
'hash' => '745b3fb5e16515689132432bf02ab1b4',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/24.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>')
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -2001,20 +2118,52 @@ abstract class ComponentbuilderHelper
|
||||
/**
|
||||
* get the dynamic content
|
||||
*
|
||||
* @param string $type The type of content
|
||||
* @param string $size The size of the content
|
||||
* @param string $type The type of content
|
||||
* @param string $size The size of the content
|
||||
* @param mix $default The default to return
|
||||
*
|
||||
* @return string on success
|
||||
* @return string on success html string
|
||||
*
|
||||
*/
|
||||
public static function getDynamicContent($type, $size, $default = '')
|
||||
public static function getDynamicContent($type, $size, $default = '', $try = 0)
|
||||
{
|
||||
if (isset(self::$dynamicContent[$type]) && isset(self::$dynamicContent[$type][$size]) && ($nr = self::checkArray(self::$dynamicContent[$type][$size])))
|
||||
if (isset(self::$dynamicContent[$type]) && isset(self::$dynamicContent[$type][$size])
|
||||
&& ($nr = self::checkArray(self::$dynamicContent[$type][$size])))
|
||||
{
|
||||
// get the random item number
|
||||
$get = (int) rand(0, --$nr);
|
||||
// get the current target
|
||||
$target = self::$dynamicContent[$type][$size][$get];
|
||||
// set file name
|
||||
$file_name = basename($target['url']);
|
||||
// set the local path (in admin area so when the component uninstall these images get removed as well)
|
||||
$path = JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type/$file_name";
|
||||
// check if file exist or if it changed
|
||||
if (($image_data = self::getFileContents($path, false)) === false ||
|
||||
md5($image_data) !== $target['hash'])
|
||||
{
|
||||
// since the file does not exist or has changed (so we have a new hash)
|
||||
// therefore we download it to validate
|
||||
if (($image_data = self::getFileContents($target['url'], false)) !== false &&
|
||||
md5($image_data) === $target['hash'])
|
||||
{
|
||||
// create the JCB type path if it does not exist
|
||||
if (!JFolder::exists(JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type"))
|
||||
{
|
||||
JFolder::create(JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type");
|
||||
}
|
||||
// only set the image if the data match the hash
|
||||
self::writeFile($path, $image_data);
|
||||
}
|
||||
// we retry 26 times
|
||||
elseif ($try < 26)
|
||||
{
|
||||
// the time around failed so we try again
|
||||
return self::getDynamicContent($type, $size, $default, ++$try);
|
||||
}
|
||||
}
|
||||
// return found content
|
||||
return self::$dynamicContent[$type][$size][$get];
|
||||
return str_replace('[[[ROOT-URL]]]', JURI::root(), $target['html']);
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
@ -3846,8 +3846,11 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB="New Tab"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB_TWO="New Tab 2"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEXT="Next"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NO="No"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code><br />
|
||||
<code><?= JText::sprintf('Hello %s', $this->user->name) ?></code><br />
|
||||
<b>Just get UPPERCASE language string:</b><br />
|
||||
<code><?= JustTEXT::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the <span id='open-libraries'>libraries</span> for more details."
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code"
|
||||
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_LINKED_TO_NOTICE_DESCRIPTION="<div id='display_linked_to'>Searching the database.<span class='loading-dots'></span></div>"
|
||||
@ -5532,6 +5535,7 @@ COM_COMPONENTBUILDER_INACTIVE="Inactive"
|
||||
COM_COMPONENTBUILDER_IN_SYNC="In Sync"
|
||||
COM_COMPONENTBUILDER_ISOLATE="Isolate"
|
||||
COM_COMPONENTBUILDER_ISSUE="issue"
|
||||
COM_COMPONENTBUILDER_IS_BEING_COMPILED="is being compiled"
|
||||
COM_COMPONENTBUILDER_IS_NOT_ONLY_FOUR_LISTRADIOCHECKBOXES="Is Not (only 4 list/radio/checkboxes)"
|
||||
COM_COMPONENTBUILDER_IS_ONLY_FOUR_LISTRADIOCHECKBOXES="Is (only 4 list/radio/checkboxes)"
|
||||
COM_COMPONENTBUILDER_IWEBSITEI_BSB="<i>Website:</i> <b>%s</b>"
|
||||
@ -6327,8 +6331,11 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME_MESSAGE="Error! Please add name here."
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NEW="A New Joomla Module"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO="No"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NONE="None"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code><br />
|
||||
<code><?= JText::sprintf('Hello %s', $this->user->name) ?></code><br />
|
||||
<b>Just get UPPERCASE language string:</b><br />
|
||||
<code><?= JustTEXT::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION="<p>All libraries added to modules are added to the component media folder for now</p>
|
||||
<p>So over here you are able to manually add HTML code to your model default tmpl.</p>"
|
||||
COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL="Libraries Options"
|
||||
@ -7170,8 +7177,11 @@ COM_COMPONENTBUILDER_LAYOUT_NAME_LABEL="Name"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NAME_MESSAGE="Error! Please add name here."
|
||||
COM_COMPONENTBUILDER_LAYOUT_NEW="A New Layout"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NO="No"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code><br />
|
||||
<code><?= JText::sprintf('Hello %s', $this->user->name) ?></code><br />
|
||||
<b>Just get UPPERCASE language string:</b><br />
|
||||
<code><?= JustTEXT::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the <span id='open-libraries'>libraries</span> for more details."
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code"
|
||||
COM_COMPONENTBUILDER_LAYOUT_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
@ -8260,8 +8270,11 @@ COM_COMPONENTBUILDER_SITE_VIEW_NEW_TAB_TWO="New Tab 2"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NEXT="Next"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NO="No"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NONE="None"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code><br />
|
||||
<code><?= JText::sprintf('Hello %s', $this->user->name) ?></code><br />
|
||||
<b>Just get UPPERCASE language string:</b><br />
|
||||
<code><?= JustTEXT::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String"
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_CUSTOM_TOOLBAR_PLACEHOLDER_DESCRIPTION="Use this placeholder in the body <code>[[[SITE_TOOLBAR]]]</code> to add the custom position of the toolbar."
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the <span id='open-libraries'>libraries</span> for more details."
|
||||
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code"
|
||||
@ -8634,7 +8647,7 @@ COM_COMPONENTBUILDER_SZIP_COULD_NOT_BE_INSTALLED="%s.zip could not be installed!
|
||||
COM_COMPONENTBUILDER_SZIP_WAS_REMOVED_THE_FROM_TMP_FOLDER_DURING_INSTALLATION="%s.zip was removed the from tmp folder during installation!"
|
||||
COM_COMPONENTBUILDER_S_BEING_IMPORTED="%s Being Imported"
|
||||
COM_COMPONENTBUILDER_S_NOT_LINKED="%s Not Linked"
|
||||
COM_COMPONENTBUILDER_S_PLEASE_WAIT_THE_COMPONENT_IS_BEING_COMPILED="%s, please wait! The component is being compiled"
|
||||
COM_COMPONENTBUILDER_S_PLEASE_WAIT="%s, please wait!"
|
||||
COM_COMPONENTBUILDER_TAB="Tab"
|
||||
COM_COMPONENTBUILDER_TABLE_BSB_NOT_FOUND_IN_THE_LOCAL_DATABASE_SO_ITS_VALUES_COULD_NOT_BE_IMPORTED_PLEASE_UPDATE_YOUR_JCB_INSTALL_AND_TRY_AGAIN="Table <b>%s</b> not found in the local database so its values could not be imported, please update your JCB install and try again."
|
||||
COM_COMPONENTBUILDER_TARGET_BEHAVIOUR="Target Behaviour"
|
||||
@ -8729,8 +8742,11 @@ COM_COMPONENTBUILDER_TEMPLATE_NAME_LABEL="Name"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NAME_MESSAGE="Error! Please add name here."
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NEW="A New Template"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NO="No"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<code><?= JText::_('Text') ?></code><br />
|
||||
<code><?= JText::sprintf('Hello %s', $this->user->name) ?></code><br />
|
||||
<b>Just get UPPERCASE language string:</b><br />
|
||||
<code><?= JustTEXT::_('Text') ?></code>"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the <span id='open-libraries'>libraries</span> for more details."
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code"
|
||||
COM_COMPONENTBUILDER_TEMPLATE_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
|
||||
@ -8780,6 +8796,7 @@ COM_COMPONENTBUILDER_THE_BSB_LIBRARYCLASS_IS_NOT_AVAILABLE_THIS_LIBRARYCLASS_SHO
|
||||
COM_COMPONENTBUILDER_THE_BSB_LIBRARY_CAN_NOT_BE_DELETED_OR_THINGS_WILL_BREAK="The <b>%s</b> library can not be deleted, or things will break."
|
||||
COM_COMPONENTBUILDER_THE_BSHOW_IN_ALL_LIST_VIEWSB_OPTION_WILL_ADD_THIS_FIELD_TO_ALL_LIST_VIEWS_ADMIN_AMP_LINKED="The <b>Show in All List Views</b> option will Add this field to all list views, admin & linked."
|
||||
COM_COMPONENTBUILDER_THE_BSINGLE_FILTERB_SELECTION_OPTION_ALLOWS_THE_USER_TO_SELECT_JUST_ONE_VALUE_IN_THIS_FILTERFIELD="The <b>single filter</b> selection option allows the user to select just one value in this filter/field."
|
||||
COM_COMPONENTBUILDER_THE_COMPONENT="The Component"
|
||||
COM_COMPONENTBUILDER_THE_COMPONENT_ADMIN_VIEWS="The component admin views"
|
||||
COM_COMPONENTBUILDER_THE_COMPONENT_CONFIG="The component config"
|
||||
COM_COMPONENTBUILDER_THE_COMPONENT_CUSTOM_ADMIN_MENUS="The component custom admin menus"
|
||||
@ -8821,6 +8838,7 @@ COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_EXIST="The
|
||||
COM_COMPONENTBUILDER_THE_URL_S_SET_TO_RETRIEVE_THE_PACKAGES_DOES_NOT_RETURN_ANY_DATA="The url (%s) set to retrieve the packages does not return any data!"
|
||||
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
|
||||
COM_COMPONENTBUILDER_THIS_BSB_IS_NOT_LINKED_TO_ANY_OTHER_AREAS_OF_JCB_AT_THIS_TIME="This <b>%s</b> is not linked to any other areas of JCB at this time!"
|
||||
COM_COMPONENTBUILDER_THIS_MAY_TAKE_A_WHILE_DEPENDING_ON_THE_SIZE_OF_YOUR_PROJECT="This may take a while depending on the size of your project."
|
||||
COM_COMPONENTBUILDER_THIS_PACKAGE_BPASSEDB_THE_CHECKSUM_VALIDATIONBR_BR_SMALLMANUALLY_ALSO_VALIDATE_THAT_THE_CORRECT_CHECKSUM_WAS_USEDSMALLBR_THIS_CHECKSUM_BSB_MUST_BE_THE_SAME_AS_THE_ONE_FOUND_A_S_SA="This package <b>PASSED</b> the checksum validation!<br /><br /><small>Manually also validate that the correct checksum was used.</small><br />This checksum: <b>%s</b> must be the same as the one found @ <a %s %s</a>"
|
||||
COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY="This package has no key."
|
||||
COM_COMPONENTBUILDER_TITLE="Title"
|
||||
|
@ -31,7 +31,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
22
admin/layouts/jcbnoticeboardpro.php
Normal file
22
admin/layouts/jcbnoticeboardpro.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
|
||||
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
|
||||
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<div class="well well-small">
|
||||
<h2 class="module-title nav-header"><?= JText::_('COM_COMPONENTBUILDER_JCB_PRO_NOTICE_BOARD') ?></h2>
|
||||
<div class="proboard-md"><small><?= JText::_('COM_COMPONENTBUILDER_THE_PRO_BOARD_IS_LOADING') ?><span class="loading-dots">.</span></small></div>
|
||||
<div style="text-align:right;"><small><a href="https://vdm.bz/get-jcb-pro-membership" target="_blank" style="color:gray">JCB PRO</a></small></div>
|
||||
</div>
|
@ -15,23 +15,15 @@ defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
||||
?>
|
||||
<div id="noticeboard">
|
||||
<?php echo JHtml::_('bootstrap.startTabSet', 'compiler_tab', array('active' => 'vdm-noticeboard')); ?>
|
||||
<?php echo JHtml::_('bootstrap.addTab', 'compiler_tab', 'vdm-noticeboard', JText::_('COM_COMPONENTBUILDER_VDM_BOARD', true)); ?>
|
||||
<div class="well well-small">
|
||||
<h2 class="module-title nav-header"><?php echo JText::_('COM_COMPONENTBUILDER_VDM_NOTICE_BOARD'); ?><span id="vdm-new-notice" style="display:none; color:red;"> (<?php echo JText::_('COM_COMPONENTBUILDER_NEW_NOTICE'); ?>)</span></h2>
|
||||
<div id="noticeboard-md"><small><?php echo JText::_('COM_COMPONENTBUILDER_THE_NOTICE_BOARD_IS_LOADING'); ?><span class="loading-dots">.</span></small></div>
|
||||
<div style="text-align:right;"><small><a href="https://github.com/Llewellynvdm" target="_blank" style="color:gray"><<ewe>>yn</a></small></div>
|
||||
</div>
|
||||
<div><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
||||
<?php echo JHtml::_('bootstrap.addTab', 'compiler_tab', 'proboard', JText::_('COM_COMPONENTBUILDER_JCB_PRO_BOARD', true)); ?>
|
||||
<div class="well well-small">
|
||||
<h2 class="module-title nav-header"><?php echo JText::_('COM_COMPONENTBUILDER_JCB_PRO_NOTICE_BOARD'); ?></h2>
|
||||
<div id="proboard-md"><small><?php echo JText::_('COM_COMPONENTBUILDER_THE_PRO_BOARD_IS_LOADING'); ?><span class="loading-dots">.</span></small></div>
|
||||
<div style="text-align:right;"><small><a href="https://vdm.bz/get-jcb-pro-membership" target="_blank" style="color:gray">JCB PRO</a></small></div>
|
||||
</div>
|
||||
<div><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
||||
<?php echo JHtml::_('bootstrap.endTab'); ?>
|
||||
<?php echo JHtml::_('bootstrap.endTabSet'); ?>
|
||||
<div id="<?= $displayData ?>">
|
||||
<?= JHtml::_('bootstrap.startTabSet', $displayData . '_tab', array('active' => 'vdm-noticeboard')) ?>
|
||||
<?= JHtml::_('bootstrap.addTab', $displayData . '_tab', 'vdm-noticeboard', JText::_('COM_COMPONENTBUILDER_VDM_BOARD', true)) ?>
|
||||
<?= JLayoutHelper::render('jcbnoticeboardvdm', null) ?>
|
||||
<div class="jcb-sponsor-banner"><?php echo ComponentbuilderHelper::getDynamicContent('banner', '728-90'); ?></div>
|
||||
<?= JHtml::_('bootstrap.endTab'); ?>
|
||||
<?= JHtml::_('bootstrap.addTab', $displayData . '_tab', 'proboard', JText::_('COM_COMPONENTBUILDER_JCB_PRO_BOARD', true)) ?>
|
||||
<?= JLayoutHelper::render('jcbnoticeboardpro', null) ?>
|
||||
<div class="jcb-sponsor-banner"><?= ComponentbuilderHelper::getDynamicContent('banner', '728-90') ?></div>
|
||||
<?= JHtml::_('bootstrap.endTab') ?>
|
||||
<?= JHtml::_('bootstrap.endTabSet') ?>
|
||||
</div>
|
||||
|
22
admin/layouts/jcbnoticeboardvdm.php
Normal file
22
admin/layouts/jcbnoticeboardvdm.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Component.Builder
|
||||
*
|
||||
* @created 30th April, 2015
|
||||
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
|
||||
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
|
||||
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
// No direct access to this file
|
||||
defined('JPATH_BASE') or die('Restricted access');
|
||||
|
||||
|
||||
|
||||
?>
|
||||
<div class="well well-small">
|
||||
<h2 class="module-title nav-header"><?= JText::_('COM_COMPONENTBUILDER_VDM_NOTICE_BOARD') ?><span class="vdm-new-notice" style="display:none; color:red;"> (<?= JText::_('COM_COMPONENTBUILDER_NEW_NOTICE') ?>)</span></h2>
|
||||
<div class="noticeboard-md"><small><?= JText::_('COM_COMPONENTBUILDER_THE_NOTICE_BOARD_IS_LOADING') ?><span class="loading-dots">.</span></small></div>
|
||||
<div style="text-align:right;"><small><a href="https://github.com/Llewellynvdm" target="_blank" style="color:gray"><<ewe>>yn</a></small></div>
|
||||
</div>
|
@ -30,7 +30,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description',
|
||||
'libraries',
|
||||
'note_libraries_options',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
@ -31,7 +31,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
@ -31,7 +31,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
@ -31,7 +31,7 @@ $fields = $displayData->get($fields_tab_layout) ?: array(
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
);
|
||||
|
||||
$hiddenFields = $displayData->get('hidden_fields') ?: array();
|
||||
|
@ -560,7 +560,7 @@ class ComponentbuilderModelComponentbuilder extends JModelList
|
||||
var getUrl = "index.php?option=com_componentbuilder&task=ajax.isRead&format=json&raw=true";
|
||||
}
|
||||
if(token.length > 0 && notice.length){
|
||||
var request = "token="+token+"¬ice="+notice;
|
||||
var request = token+"=1¬ice="+notice;
|
||||
}
|
||||
return jQuery.ajax({
|
||||
type: "POST",
|
||||
|
@ -34,7 +34,7 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
),
|
||||
'right' => array(
|
||||
'icon',
|
||||
|
@ -150,8 +150,8 @@
|
||||
required="true"
|
||||
button="true"
|
||||
/>
|
||||
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
|
||||
<!-- Note_add_php_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_php_language_string" label="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_php_language_string" />
|
||||
<!-- Add_php_jview_display Field. Type: Radio. (joomla) -->
|
||||
<field
|
||||
type="radio"
|
||||
|
@ -245,8 +245,8 @@
|
||||
required="false"
|
||||
button="true"
|
||||
/>
|
||||
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
|
||||
<!-- Note_add_php_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_php_language_string" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_php_language_string" />
|
||||
<!-- Add_sql Field. Type: Radio. (joomla) -->
|
||||
<field
|
||||
type="radio"
|
||||
|
@ -205,8 +205,8 @@
|
||||
<field type="note" name="note_snippet_usage" label="COM_COMPONENTBUILDER_LAYOUT_NOTE_SNIPPET_USAGE_LABEL" heading="h4" class="snippet-usage note_snippet_usage" />
|
||||
<!-- Note_uikit_snippet Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_uikit_snippet" label="COM_COMPONENTBUILDER_LAYOUT_NOTE_UIKIT_SNIPPET_LABEL" heading="h4" class="snippet-code note_uikit_snippet" />
|
||||
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
|
||||
<!-- Note_add_php_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_php_language_string" label="COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_php_language_string" />
|
||||
<!-- Libraries Field. Type: Libraries. (custom) -->
|
||||
<field
|
||||
type="libraries"
|
||||
|
@ -208,8 +208,8 @@
|
||||
filter="raw"
|
||||
validate="code"
|
||||
/>
|
||||
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
|
||||
<!-- Note_add_php_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_php_language_string" label="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_php_language_string" />
|
||||
<!-- Codename Field. Type: Text. (joomla) -->
|
||||
<field
|
||||
type="text"
|
||||
|
@ -205,8 +205,8 @@
|
||||
/>
|
||||
<!-- Note_uikit_snippet Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_uikit_snippet" label="COM_COMPONENTBUILDER_TEMPLATE_NOTE_UIKIT_SNIPPET_LABEL" heading="h4" class="snippet-code note_uikit_snippet" />
|
||||
<!-- Note_add_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_language_string" label="COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_language_string" />
|
||||
<!-- Note_add_php_language_string Field. Type: Note. A None Database Field. (joomla) -->
|
||||
<field type="note" name="note_add_php_language_string" label="COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL" description="COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION" heading="h4" class="note_add_php_language_string" />
|
||||
<!-- Libraries Field. Type: Libraries. (custom) -->
|
||||
<field
|
||||
type="libraries"
|
||||
|
@ -33,7 +33,7 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
|
||||
'description',
|
||||
'libraries',
|
||||
'note_libraries_options',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
),
|
||||
'right' => array(
|
||||
'snippet',
|
||||
|
@ -34,7 +34,7 @@ class ComponentbuilderModelLayout extends JModelAdmin
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
),
|
||||
'right' => array(
|
||||
'snippet',
|
||||
|
@ -34,7 +34,7 @@ class ComponentbuilderModelSite_view extends JModelAdmin
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
),
|
||||
'right' => array(
|
||||
'snippet',
|
||||
|
@ -34,7 +34,7 @@ class ComponentbuilderModelTemplate extends JModelAdmin
|
||||
'description',
|
||||
'note_libraries_selection',
|
||||
'libraries',
|
||||
'note_add_language_string'
|
||||
'note_add_php_language_string'
|
||||
),
|
||||
'right' => array(
|
||||
'snippet',
|
||||
|
@ -2299,7 +2299,7 @@ INSERT INTO `#__componentbuilder_admin_fields_conditions` (`id`, `addconditions`
|
||||
--
|
||||
|
||||
INSERT INTO `#__componentbuilder_component_admin_views` (`id`, `addadmin_views`, `joomla_component`, `published`, `created`, `modified`, `version`, `hits`, `ordering`) VALUES
|
||||
(27, '{\"addadmin_views0\":{\"adminview\":\"109\",\"icomoon\":\"eye-open\",\"mainmenu\":\"1\",\"dashboard_add\":\"1\",\"dashboard_list\":\"1\",\"submenu\":\"1\",\"checkin\":\"1\",\"history\":\"1\",\"joomla_fields\":\"1\",\"metadata\":\"1\",\"access\":\"1\",\"port\":\"1\",\"edit_create_site_view\":\"1\",\"order\":\"1\"}}', 25, 1, '2017-10-28 03:56:26', '2018-08-22 19:18:19', 6, '', '');
|
||||
(27, '{\"addadmin_views0\":{\"adminview\":\"109\",\"icomoon\":\"eye-open\",\"mainmenu\":\"1\",\"dashboard_add\":\"1\",\"dashboard_list\":\"1\",\"submenu\":\"1\",\"checkin\":\"1\",\"history\":\"1\",\"joomla_fields\":\"1\",\"metadata\":\"1\",\"access\":\"1\",\"port\":\"1\",\"filter\":\"2\",\"edit_create_site_view\":\"1\",\"order\":\"1\"}}', 25, 1, '2017-10-28 03:56:26', '2021-02-08 10:32:04', 7, '', '');
|
||||
|
||||
--
|
||||
-- Dumping data for table `#__componentbuilder_component_site_views`
|
||||
|
@ -50,10 +50,23 @@ Joomla.submitbutton = function(task, key)
|
||||
form.submit();
|
||||
// some ui movements
|
||||
if (task == 'compiler.compiler'){
|
||||
jQuery('#compiler').show();
|
||||
// get the component name
|
||||
let component_name = jQuery("#component option:selected").text();
|
||||
// set the component name
|
||||
jQuery(".component-name").text(component_name);
|
||||
// wait a little since to much is happening...
|
||||
setTimeout(function() {
|
||||
jQuery('#compiler').show();
|
||||
jQuery('#compiling').css('display', 'block');
|
||||
// wait a little since to much is happening...
|
||||
setTimeout(function() {
|
||||
jQuery('#compiler-spinner').show();
|
||||
jQuery('#compiler-notice').show();
|
||||
}, 100);
|
||||
}, 100);
|
||||
} else if (task == 'compiler.clearTmp'){
|
||||
jQuery('#loading').css('display', 'block');
|
||||
jQuery('#clear').show();
|
||||
jQuery('#loading').css('display', 'block');
|
||||
} else {
|
||||
jQuery('#loading').css('display', 'block');
|
||||
}
|
||||
@ -81,6 +94,20 @@ jQuery('<div id="loading"></div>')
|
||||
.css("filter", "alpha(opacity = 80)")
|
||||
.css("display", "none")
|
||||
.appendTo(outerDiv);
|
||||
// for the compiler
|
||||
var outerDiv = jQuery('body');
|
||||
jQuery('<div id="compiling"></div>')
|
||||
.css("background", "rgba(16, 164, 230, .4)")
|
||||
.css("top", outerDiv.position().top - jQuery(window).scrollTop())
|
||||
.css("left", outerDiv.position().left - jQuery(window).scrollLeft())
|
||||
.css("width", outerDiv.width())
|
||||
.css("height", outerDiv.height())
|
||||
.css("position", "fixed")
|
||||
.css("opacity", "0.40")
|
||||
.css("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(Opacity = 40)")
|
||||
.css("filter", "alpha(opacity = 40)")
|
||||
.css("display", "none")
|
||||
.appendTo(outerDiv);
|
||||
});
|
||||
</script>
|
||||
<?php if(!empty( $this->sidebar)): ?>
|
||||
@ -93,15 +120,15 @@ jQuery('<div id="loading"></div>')
|
||||
<?php endif; ?>
|
||||
<div id="form">
|
||||
<div class="span4">
|
||||
<h3><?php echo JText::_('COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT'); ?></h3>
|
||||
<h3><?= JText::_('COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT') ?></h3>
|
||||
<div id="compilerForm">
|
||||
<div>
|
||||
<span class="notice" style="display:none; color:red;"><?php echo JText::_('COM_COMPONENTBUILDER_YOU_MUST_SELECT_A_COMPONENT'); ?></span><br />
|
||||
<span class="notice" style="display:none; color:red;"><?= JText::_('COM_COMPONENTBUILDER_YOU_MUST_SELECT_A_COMPONENT') ?></span><br />
|
||||
<?php if ($this->form): ?>
|
||||
<?php foreach ($this->form as $field): ?>
|
||||
<div class="control-group">
|
||||
<div class="control-label"><?php echo $field->label;?></div>
|
||||
<div class="controls"><?php echo $field->input;?></div>
|
||||
<div class="control-label"><?= $field->label ?></div>
|
||||
<div class="controls"><?= $field->input ?></div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php endif; ?>
|
||||
@ -109,36 +136,44 @@ jQuery('<div id="loading"></div>')
|
||||
<br />
|
||||
<div class="clearfix"></div>
|
||||
<button class="btn btn-small btn-success" onclick="Joomla.submitbutton('compiler.compiler')"><span class="icon-cog icon-white"></span>
|
||||
<?php echo JText::_('COM_COMPONENTBUILDER_COMPILE_COMPONENT'); ?>
|
||||
<?= JText::_('COM_COMPONENTBUILDER_COMPILE_COMPONENT') ?>
|
||||
</button>
|
||||
<input type="hidden" name="install_item_id" value="0">
|
||||
<input type="hidden" name="version" value="3" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="span7">
|
||||
<div id="component-details"><?php echo $selectNotice; ?></div>
|
||||
<?php echo JLayoutHelper::render('jcbnoticeboardtabs', null); ?>
|
||||
<div id="component-details"><?= $selectNotice ?></div>
|
||||
<?= JLayoutHelper::render('jcbnoticeboardtabs', 'noticeboard') ?>
|
||||
</div>
|
||||
</div>
|
||||
<div id="clear" style="display:none;">
|
||||
<h1><?php echo JText::_('COM_COMPONENTBUILDER_PLEASE_WAIT_CLEARING_THE_TMP_FOLDER'); ?> <span class="loading-dots">.</span></h1>
|
||||
<h1><?= JText::_('COM_COMPONENTBUILDER_PLEASE_WAIT_CLEARING_THE_TMP_FOLDER') ?> <span class="loading-dots">.</span></h1>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<div id="compiler" style="display:none;">
|
||||
<h1><?php echo JText::sprintf('COM_COMPONENTBUILDER_S_PLEASE_WAIT_THE_COMPONENT_IS_BEING_COMPILED', $this->user->name); ?><span class="loading-dots">.</span></h1>
|
||||
<?php echo ComponentbuilderHelper::getDynamicContent('builder-gif', '707-400'); ?>
|
||||
<div class="clearfix"></div>
|
||||
<div id="compiler-spinner" class="span4" style="display:none;">
|
||||
<h3><?= JText::sprintf('COM_COMPONENTBUILDER_S_PLEASE_WAIT', $this->user->name) ?></h3>
|
||||
<div style="font-size: smaller;"><?= JText::_('COM_COMPONENTBUILDER_THIS_MAY_TAKE_A_WHILE_DEPENDING_ON_THE_SIZE_OF_YOUR_PROJECT') ?></div>
|
||||
<h4><b><span class="component-name"><?= JText::_('COM_COMPONENTBUILDER_THE_COMPONENT') ?></span></b> <?= JText::_('COM_COMPONENTBUILDER_IS_BEING_COMPILED') ?><span class="loading-dots">.</span></h4>
|
||||
<div style="text-align: center;"><?= ComponentbuilderHelper::getDynamicContent('builder-gif', '480-540') ?></div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<div id="compiler-notice" class="span7" style="display:none;">
|
||||
<?= JLayoutHelper::render('jcbnoticeboardvdm', null) ?>
|
||||
<div class="jcb-sponsor-banner"><?= ComponentbuilderHelper::getDynamicContent('banner', '728-90') ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
// token
|
||||
var token = '<?php echo JSession::getFormToken(); ?>';
|
||||
var all_is_good = '<?php echo JText::_('COM_COMPONENTBUILDER_ALL_IS_GOOD_THERE_IS_NO_NOTICE_AT_THIS_TIME'); ?>';
|
||||
var token = '<?= JSession::getFormToken() ?>';
|
||||
var all_is_good = '<?= JText::_('COM_COMPONENTBUILDER_ALL_IS_GOOD_THERE_IS_NO_NOTICE_AT_THIS_TIME') ?>';
|
||||
jQuery('#compilerForm').on('change', '#component',function (e)
|
||||
{
|
||||
var component = jQuery('#component').val();
|
||||
if(component == "") {
|
||||
jQuery('#component-details').html("<?php echo $selectNotice; ?>");
|
||||
jQuery('#component-details').html("<?= $selectNotice ?>");
|
||||
jQuery("#noticeboard").show();
|
||||
jQuery('.notice').show();
|
||||
} else {
|
||||
|
@ -60,8 +60,8 @@ class ComponentbuilderViewCompiler extends JViewLegacy
|
||||
}
|
||||
|
||||
// These are subform layouts used in JCB
|
||||
// JLayoutHelper::render('sectionjcb', [?]); // added to ensure the layout is loaded
|
||||
// JLayoutHelper::render('repeatablejcb', [?]); // added to ensure the layout is loaded
|
||||
// JLayoutHelper::render('sectionjcb', [?]); // added to ensure the layout are loaded
|
||||
// JLayoutHelper::render('repeatablejcb', [?]); // added to ensure the layout are loaded
|
||||
|
||||
public function setForm()
|
||||
{
|
||||
@ -277,30 +277,30 @@ class ComponentbuilderViewCompiler extends JViewLegacy
|
||||
jQuery.get(noticeboard)
|
||||
.success(function(board) {
|
||||
if (board.length > 5) {
|
||||
jQuery(\"#noticeboard-md\").html(marked(board));
|
||||
jQuery(\".noticeboard-md\").html(marked(board));
|
||||
getIS(1,board).done(function(result) {
|
||||
if (result){
|
||||
jQuery(\"#vdm-new-notice\").show();
|
||||
jQuery(\".vdm-new-notice\").show();
|
||||
getIS(2,board);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
jQuery(\"#noticeboard-md\").html(all_is_good);
|
||||
jQuery(\".noticeboard-md\").html(all_is_good);
|
||||
}
|
||||
})
|
||||
.error(function(jqXHR, textStatus, errorThrown) {
|
||||
jQuery(\"#noticeboard-md\").html(all_is_good);
|
||||
jQuery(\".noticeboard-md\").html(all_is_good);
|
||||
});
|
||||
jQuery.get(proboard)
|
||||
.success(function(board) {
|
||||
if (board.length > 5) {
|
||||
jQuery(\"#proboard-md\").html(marked(board));
|
||||
jQuery(\".proboard-md\").html(marked(board));
|
||||
} else {
|
||||
jQuery(\"#proboard-md\").html(all_is_good);
|
||||
jQuery(\".proboard-md\").html(all_is_good);
|
||||
}
|
||||
})
|
||||
.error(function(jqXHR, textStatus, errorThrown) {
|
||||
jQuery(\"#proboard-md\").html(all_is_good);
|
||||
jQuery(\".proboard-md\").html(all_is_good);
|
||||
});
|
||||
});
|
||||
// to check is READ/NEW
|
||||
|
@ -133,20 +133,21 @@ JHtml::_('behavior.keepalive');
|
||||
|
||||
// Add spindle-wheel for importations:
|
||||
jQuery(document).ready(function($) {
|
||||
var outerDiv = $('body');
|
||||
|
||||
$('<div id="loading"></div>')
|
||||
.css("background", "rgba(255, 255, 255, .8) url('components/com_componentbuilder/assets/images/import.gif') 50% 15% no-repeat")
|
||||
.css("top", outerDiv.position().top - $(window).scrollTop())
|
||||
.css("left", outerDiv.position().left - $(window).scrollLeft())
|
||||
.css("width", outerDiv.width())
|
||||
.css("height", outerDiv.height())
|
||||
.css("position", "fixed")
|
||||
.css("opacity", "0.80")
|
||||
.css("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
|
||||
.css("filter", "alpha(opacity = 80)")
|
||||
.css("display", "none")
|
||||
.appendTo(outerDiv);
|
||||
|
||||
// waiting spinner
|
||||
var outerDiv = jQuery('body');
|
||||
jQuery('<div id="loading"></div>')
|
||||
.css("background", "rgba(255, 255, 255, .8) url('components/com_componentbuilder/assets/images/import.gif') 50% 15% no-repeat")
|
||||
.css("top", outerDiv.position().top - jQuery(window).scrollTop())
|
||||
.css("left", outerDiv.position().left - jQuery(window).scrollLeft())
|
||||
.css("width", outerDiv.width())
|
||||
.css("height", outerDiv.height())
|
||||
.css("position", "fixed")
|
||||
.css("opacity", "0.80")
|
||||
.css("-ms-filter", "progid:DXImageTransform.Microsoft.Alpha(Opacity = 80)")
|
||||
.css("filter", "alpha(opacity = 80)")
|
||||
.css("display", "none")
|
||||
.appendTo(outerDiv);
|
||||
});
|
||||
</script>
|
||||
|
||||
@ -467,6 +468,7 @@ function getJCBpackageInfo_server(url){
|
||||
}
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
var noticeboard = "https://www.vdm.io/componentbuilder-noticeboard-md";
|
||||
jQuery(document).ready(function () {
|
||||
jQuery.get(noticeboard)
|
||||
@ -489,20 +491,20 @@ jQuery(document).ready(function () {
|
||||
});
|
||||
// to check is READ/NEW
|
||||
function getIS(type,notice){
|
||||
if (type == 1) {
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.isNew&format=json");
|
||||
if(type == 1){
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.isNew&format=json&raw=true");
|
||||
} else if (type == 2) {
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.isRead&format=json");
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.isRead&format=json&raw=true");
|
||||
}
|
||||
if(token.length > 0 && notice.length){
|
||||
var request = "token="+token+"¬ice="+notice;
|
||||
var request = token+"=1¬ice="+notice;
|
||||
}
|
||||
return jQuery.ajax({
|
||||
type: "POST",
|
||||
url: getUrl,
|
||||
dataType: "jsonp",
|
||||
dataType: "json",
|
||||
data: request,
|
||||
jsonp: "callback"
|
||||
jsonp: false
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="3.2" method="upgrade">
|
||||
<name>COM_COMPONENTBUILDER</name>
|
||||
<creationDate>2nd February, 2021</creationDate>
|
||||
<creationDate>19th February, 2021</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
||||
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
|
||||
|
@ -1967,30 +1967,147 @@ abstract class ComponentbuilderHelper
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* The array of dynamic content
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $dynamicContent = array(
|
||||
// The banners by size
|
||||
// The banners by size (width - height)
|
||||
'banner' => array(
|
||||
'728-90' => array(
|
||||
'<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="https://cdn.joomla.org/volunteers/joomla-heart-wide.gif" alt="Joomla! Volunteers Portal" width="728" height="90" border="0"></a>',
|
||||
'<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img alt="Joomla! Community Magazine | Because community matters..." src="https://magazine.joomla.org/images/banners/JCM_2010_728x90.png" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-tlwebdesign" target="_blank" title="tlwebdesign a JCB sponsor | Because community matters..."><img alt="tlwebdesign a JCB sponsor | Because community matters..." src="https://www.joomlacomponentbuilder.com/images/banners/tlwebdesign_jcb_sponsor_728_90.png" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-vdm" target="_blank" title="VDM a JCB sponsor | Because community matters..."><img alt="VDM a JCB sponsor | Because community matters..." src="https://www.joomlacomponentbuilder.com/images/banners/vdm_jcb_sponsor_728_90.gif" width="728" height="90" border="0" /></a>',
|
||||
'<a href="https://vdm.bz/jcb-sponsor-agerix" target="_blank" title="Agerix a JCB sponsor | Because community matters..."><img alt="Agerix a JCB sponsor | Because community matters..." src="https://allmycms.com/images/banners/agerix/agerix-loves-jcb-728-90.gif" width="728" height="90" border="0" /></a>'
|
||||
array(
|
||||
'url' => 'https://cdn.joomla.org/volunteers/joomla-heart-wide.gif',
|
||||
'hash' => 'f857e3a38facaeac9eba3cffa912b620',
|
||||
'html' => '<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/joomla-heart-wide.gif" alt="Joomla! Volunteers Portal" width="728" height="90" border="0"></a>'),
|
||||
array(
|
||||
'url' => 'https://magazine.joomla.org/images/banners/JCM_2010_728x90.png',
|
||||
'hash' => '4083c66f996279fd5a76adffc3a7d194',
|
||||
'html' => '<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img alt="Joomla! Community Magazine | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/JCM_2010_728x90.png" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/banners/tlwebdesign_jcb_sponsor_728_90.png',
|
||||
'hash' => 'd19be1f9f5b2049ff901096aafc246be',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-tlwebdesign" target="_blank" title="tlwebdesign a JCB sponsor | Because community matters..."><img alt="tlwebdesign a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/tlwebdesign_jcb_sponsor_728_90.png" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/banners/vdm_jcb_sponsor_728_90.gif',
|
||||
'hash' => '84478dfa0cd880395815e0ee026812a4',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-vdm" target="_blank" title="VDM a JCB sponsor | Because community matters..."><img alt="VDM a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/vdm_jcb_sponsor_728_90.gif" width="728" height="90" border="0" /></a>'),
|
||||
array(
|
||||
'url' => 'https://allmycms.com/images/banners/agerix/agerix-loves-jcb-728-90.gif',
|
||||
'hash' => 'b24c0726aa809cdcc04bcffe7e1e1529',
|
||||
'html' => '<a href="https://vdm.bz/jcb-sponsor-agerix" target="_blank" title="Agerix a JCB sponsor | Because community matters..."><img alt="Agerix a JCB sponsor | Because community matters..." src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/agerix-loves-jcb-728-90.gif" width="728" height="90" border="0" /></a>')
|
||||
),
|
||||
'160-600' => array(
|
||||
'<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="https://cdn.joomla.org/volunteers/joomla-heart-tall.gif" alt="Joomla! Volunteers Portal" width="160" height="600" border="0"></a>',
|
||||
'<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img src="https://magazine.joomla.org/images/banners/JCM_2010_120x600.png" alt="Joomla! Community Magazine | Because community matters..." width="120" height="600" border="0"/></a>'
|
||||
array(
|
||||
'url' => 'https://cdn.joomla.org/volunteers/joomla-heart-tall.gif',
|
||||
'hash' => '9a75e4929b86c318128b53cf78251678',
|
||||
'html' => '<a href="https://vdm.bz/joomla-volunteers" target="_blank" title="Joomla! Volunteers Portal"><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/joomla-heart-tall.gif" alt="Joomla! Volunteers Portal" width="160" height="600" border="0"></a>'),
|
||||
array(
|
||||
'url' => 'https://magazine.joomla.org/images/banners/JCM_2010_120x600.png',
|
||||
'hash' => '5389cf3be8569cb3f6793e8bd4013d19',
|
||||
'html' => '<a href="https://vdm.bz/joomla-magazine" target="_blank" title="Joomla! Community Magazine | Because community matters..."><img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/banner/JCM_2010_120x600.png" alt="Joomla! Community Magazine | Because community matters..." width="120" height="600" border="0"/></a>')
|
||||
)
|
||||
),
|
||||
// The build-gif by size
|
||||
// The build-gif by size (width - height)
|
||||
'builder-gif' => array(
|
||||
'707-400' => array(
|
||||
'<img src="components/com_componentbuilder/assets/images/ajax-loader.gif" />'
|
||||
'480-540' => array(
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/1.gif',
|
||||
'hash' => 'ce6e36456fa794ba95d981547b2f54f8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/1.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/2.gif',
|
||||
'hash' => '0a54dbc393359747e33db90cabb1e2d7',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/2.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/3.gif',
|
||||
'hash' => '4e5498713ff69a64a0a79dbf620372a3',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/3.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/4.gif',
|
||||
'hash' => '3554ffab2a6df95a116fd9f0db63925c',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/4.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/5.gif',
|
||||
'hash' => '08f0cdf188593eca65c6dafd7af27ef9',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/5.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/6.gif',
|
||||
'hash' => '103b46a7ac3fcb974e25d06f417a4e87',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/6.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/7.gif',
|
||||
'hash' => 'ffa8547099b7286f89ab7ff5a140dd90',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/7.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/8.gif',
|
||||
'hash' => '316df780f9e4ce81200a65d3c4303c41',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/8.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/9.gif',
|
||||
'hash' => '9ab6ba78b6e63a285fdef2ff5e447c93',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/9.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/10.gif',
|
||||
'hash' => 'cd9abaa1cb95f51a70916da6b70614f2',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/10.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/11.gif',
|
||||
'hash' => 'cfe53095b5249618e2348223b89262b9',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/11.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/12.gif',
|
||||
'hash' => '15a6690647d5160d67c80ce4dd1f5602',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/12.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/13.gif',
|
||||
'hash' => '2f77562e92c8a3b7c47664c98f551fe8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/13.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/14.gif',
|
||||
'hash' => '46db15517ef5bd063be85134e1cc575d',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/14.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/15.gif',
|
||||
'hash' => 'e6c96eff157ea648ceb1583f2cc22544',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/15.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/16.gif',
|
||||
'hash' => '76010b7d1f99952eb9645df660467ae8',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/16.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/17.gif',
|
||||
'hash' => '021219ddd72d8fcfc7f80bd4a874d651',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/17.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/18.gif',
|
||||
'hash' => '383af3179d4ae27301c1292e630d7155',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/18.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/19.gif',
|
||||
'hash' => '8537e6d7be93447241b521f851e8a61d',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/19.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/20.gif',
|
||||
'hash' => '10d96f70e3d43086a925b00a7dc0022e',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/20.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/21.gif',
|
||||
'hash' => '161de9865b171b44039353b8d50491d3',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/21.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/22.gif',
|
||||
'hash' => '6a2354e43eb97d278d74bb2c12890988',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/22.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/23.gif',
|
||||
'hash' => '2cb6e2f9562a8dc8eef6d5d8d1a84f5e',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/23.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>'),
|
||||
array(
|
||||
'url' => 'https://www.joomlacomponentbuilder.com/images/builder/24.gif',
|
||||
'hash' => '745b3fb5e16515689132432bf02ab1b4',
|
||||
'html' => '<img src="[[[ROOT-URL]]]administrator/components/com_componentbuilder/assets/images/builder-gif/24.gif" /><br /><div style="text-align: right; font-size: smaller;">Animation produced with 3D Particle Explorations by Jack Rugile.</div>')
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -1998,20 +2115,52 @@ abstract class ComponentbuilderHelper
|
||||
/**
|
||||
* get the dynamic content
|
||||
*
|
||||
* @param string $type The type of content
|
||||
* @param string $size The size of the content
|
||||
* @param string $type The type of content
|
||||
* @param string $size The size of the content
|
||||
* @param mix $default The default to return
|
||||
*
|
||||
* @return string on success
|
||||
* @return string on success html string
|
||||
*
|
||||
*/
|
||||
public static function getDynamicContent($type, $size, $default = '')
|
||||
public static function getDynamicContent($type, $size, $default = '', $try = 0)
|
||||
{
|
||||
if (isset(self::$dynamicContent[$type]) && isset(self::$dynamicContent[$type][$size]) && ($nr = self::checkArray(self::$dynamicContent[$type][$size])))
|
||||
if (isset(self::$dynamicContent[$type]) && isset(self::$dynamicContent[$type][$size])
|
||||
&& ($nr = self::checkArray(self::$dynamicContent[$type][$size])))
|
||||
{
|
||||
// get the random item number
|
||||
$get = (int) rand(0, --$nr);
|
||||
// get the current target
|
||||
$target = self::$dynamicContent[$type][$size][$get];
|
||||
// set file name
|
||||
$file_name = basename($target['url']);
|
||||
// set the local path (in admin area so when the component uninstall these images get removed as well)
|
||||
$path = JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type/$file_name";
|
||||
// check if file exist or if it changed
|
||||
if (($image_data = self::getFileContents($path, false)) === false ||
|
||||
md5($image_data) !== $target['hash'])
|
||||
{
|
||||
// since the file does not exist or has changed (so we have a new hash)
|
||||
// therefore we download it to validate
|
||||
if (($image_data = self::getFileContents($target['url'], false)) !== false &&
|
||||
md5($image_data) === $target['hash'])
|
||||
{
|
||||
// create the JCB type path if it does not exist
|
||||
if (!JFolder::exists(JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type"))
|
||||
{
|
||||
JFolder::create(JPATH_ROOT . "/administrator/components/com_componentbuilder/assets/images/$type");
|
||||
}
|
||||
// only set the image if the data match the hash
|
||||
self::writeFile($path, $image_data);
|
||||
}
|
||||
// we retry 26 times
|
||||
elseif ($try < 26)
|
||||
{
|
||||
// the time around failed so we try again
|
||||
return self::getDynamicContent($type, $size, $default, ++$try);
|
||||
}
|
||||
}
|
||||
// return found content
|
||||
return self::$dynamicContent[$type][$size][$get];
|
||||
return str_replace('[[[ROOT-URL]]]', JURI::root(), $target['html']);
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user