forked from joomla/Component-Builder
Fixed the JCB package import url inclusion limitation.
This commit is contained in:
parent
f0cdf086d4
commit
9f04566c81
@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
|
||||
|
||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
||||
|
||||
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.13.0) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.13.1) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||
|
||||
@ -143,11 +143,11 @@ 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*: 27th May, 2022
|
||||
+ *Version*: 2.13.0
|
||||
+ *Last Build*: 2nd June, 2022
|
||||
+ *Version*: 2.13.1
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **287273**
|
||||
+ *Line count*: **287278**
|
||||
+ *Field count*: **1581**
|
||||
+ *File count*: **1853**
|
||||
+ *Folder count*: **261**
|
||||
|
@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
|
||||
|
||||
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
|
||||
|
||||
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.13.0) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.13.1) with **ALL** its features and **ALL** concepts totally open-source and free!
|
||||
|
||||
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
|
||||
|
||||
@ -143,11 +143,11 @@ 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*: 27th May, 2022
|
||||
+ *Version*: 2.13.0
|
||||
+ *Last Build*: 2nd June, 2022
|
||||
+ *Version*: 2.13.1
|
||||
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
|
||||
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
|
||||
+ *Line count*: **287273**
|
||||
+ *Line count*: **287278**
|
||||
+ *Field count*: **1581**
|
||||
+ *File count*: **1853**
|
||||
+ *Folder count*: **261**
|
||||
|
@ -257,10 +257,10 @@ class ComponentbuilderControllerAjax extends BaseController
|
||||
case 'getJCBpackageInfo':
|
||||
try
|
||||
{
|
||||
$urlValue = $jinput->get('url', NULL, 'STRING');
|
||||
if($urlValue && $user->id != 0)
|
||||
$packageValue = $jinput->get('package', NULL, 'BASE64');
|
||||
if($packageValue && $user->id != 0)
|
||||
{
|
||||
$result = $this->getModel('ajax')->getJCBpackageInfo($urlValue);
|
||||
$result = $this->getModel('ajax')->getJCBpackageInfo($packageValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -508,6 +508,8 @@ class Structure extends Get
|
||||
$power->path
|
||||
))
|
||||
{
|
||||
// activate dynamic folders
|
||||
$this->setDynamicFolders();
|
||||
// power path
|
||||
$power->full_path = $this->componentPath . '/'
|
||||
. $power->path;
|
||||
@ -2257,23 +2259,8 @@ class Structure extends Get
|
||||
&& StringHelper::check($checker[0])
|
||||
&& !in_array($checker[0], $this->stdFolders))
|
||||
{
|
||||
// check if we should add the dynamic folder moving script to the installer script
|
||||
if (!$this->setMoveFolders)
|
||||
{
|
||||
// add the setDynamicF0ld3rs() method to the install scipt.php file
|
||||
$this->setMoveFolders = true;
|
||||
// set message that this was done (will still add a tutorial link later)
|
||||
$this->app->enqueueMessage(
|
||||
JText::_(
|
||||
'<hr /><h3>Dynamic folder(s) were detected.</h3>'
|
||||
), 'Notice'
|
||||
);
|
||||
$this->app->enqueueMessage(
|
||||
JText::sprintf(
|
||||
'A method (setDynamicF0ld3rs) was added to the install <b>script.php</b> of this package to insure that the folder(s) are copied into the correct place when this component is installed!'
|
||||
), 'Notice'
|
||||
);
|
||||
}
|
||||
// activate dynamic folders
|
||||
$this->setDynamicFolders();
|
||||
}
|
||||
elseif (count((array) $checker) == 2
|
||||
&& StringHelper::check($checker[0]))
|
||||
@ -3207,6 +3194,30 @@ class Structure extends Get
|
||||
return $version_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the dynamic folders
|
||||
*/
|
||||
protected function setDynamicFolders()
|
||||
{
|
||||
// check if we should add the dynamic folder moving script to the installer script
|
||||
if (!$this->setMoveFolders)
|
||||
{
|
||||
// add the setDynamicF0ld3rs() method to the install scipt.php file
|
||||
$this->setMoveFolders = true;
|
||||
// set message that this was done (will still add a tutorial link later)
|
||||
$this->app->enqueueMessage(
|
||||
JText::_(
|
||||
'<hr /><h3>Dynamic folder(s) were detected.</h3>'
|
||||
), 'Notice'
|
||||
);
|
||||
$this->app->enqueueMessage(
|
||||
JText::sprintf(
|
||||
'A method (setDynamicF0ld3rs) was added to the install <b>script.php</b> of this package to insure that the folder(s) are copied into the correct place when this component is installed!'
|
||||
), 'Notice'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set the index.html file in a folder path
|
||||
*
|
||||
|
@ -159,9 +159,10 @@ class ComponentbuilderModelAjax extends ListModel
|
||||
/**
|
||||
* get the JCB package info (html)
|
||||
**/
|
||||
public function getJCBpackageInfo($url)
|
||||
public function getJCBpackageInfo($package)
|
||||
{
|
||||
// convert URL
|
||||
$url = base64_decode($package);
|
||||
$url = str_replace('.zip', '.info', $url);
|
||||
// check if url exist
|
||||
if ($info = ComponentbuilderHelper::getFileContents($url, false))
|
||||
@ -199,7 +200,7 @@ class ComponentbuilderModelAjax extends ListModel
|
||||
// check if we have json
|
||||
if ($opened && ComponentbuilderHelper::checkJson($_info))
|
||||
{
|
||||
$info = json_decode($info, true);
|
||||
$info = json_decode($_info, true);
|
||||
return array('owner' => ComponentbuilderHelper::getPackageOwnerDetailsDisplay($info, true), 'packages' => ComponentbuilderHelper::getPackageComponentsDetailsDisplay($info));
|
||||
}
|
||||
}
|
||||
|
@ -143,6 +143,11 @@ class ComponentbuilderModelImport_joomla_components extends BaseDatabaseModel
|
||||
break;
|
||||
|
||||
case 'url':
|
||||
$url = JFactory::getApplication()->input->getString('import_url');
|
||||
if ($url === base64_encode(base64_decode($url, true)))
|
||||
{
|
||||
JFactory::getApplication()->input->set('import_url', base64_decode($url));
|
||||
}
|
||||
$package = $this->_getPackageFromUrl();
|
||||
break;
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -360,16 +360,16 @@ jQuery(document).ready(function($)
|
||||
// get all jcb packages
|
||||
jQuery("#jcb_package option").each(function()
|
||||
{
|
||||
var key = jQuery(this).val();
|
||||
packages[key] = 'jcb';
|
||||
var package = jQuery(this).val();
|
||||
packages[package] = 'jcb';
|
||||
});
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->vdmPackages) && $this->vdmPackages && ComponentbuilderHelper::checkArray($this->vdmPackages)): ?>
|
||||
// get all vdm packages
|
||||
jQuery("#vdm_package option").each(function()
|
||||
{
|
||||
var key = jQuery(this).val();
|
||||
packages[key] = 'vdm';
|
||||
var package = jQuery(this).val();
|
||||
packages[package] = 'vdm';
|
||||
});
|
||||
<?php endif; ?>
|
||||
// no start behind the scene getting of package info
|
||||
@ -377,20 +377,19 @@ jQuery(document).ready(function($)
|
||||
});
|
||||
|
||||
function autoJCBpackageInfo(){
|
||||
jQuery.each( packages, function( url, type ) {
|
||||
var key = url.replace(/\W/g, '');
|
||||
jQuery.each( packages, function( package, type ) {
|
||||
// check if the values are local
|
||||
var result = jQuery.jStorage.get('JCB-packages-details'+key, null);
|
||||
if (!result && url.length > 0) {
|
||||
autoJCBpackageInfoAgain(url, key, type);
|
||||
var result = jQuery.jStorage.get('JCB-packages-details' + package, null);
|
||||
if (!result && package.length > 0) {
|
||||
autoJCBpackageInfoAgain(package, type);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function autoJCBpackageInfoAgain(url, key,type){
|
||||
getJCBpackageInfo_server(url).done(function(result) {
|
||||
function autoJCBpackageInfoAgain(package, type){
|
||||
getJCBpackageInfo_server(package).done(function(result) {
|
||||
if(result.owner || result.packages){
|
||||
jQuery.jStorage.set('JCB-packages-details'+key, result, {TTL: expire});
|
||||
jQuery.jStorage.set('JCB-packages-details' + package, result, {TTL: expire});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -401,15 +400,14 @@ function getJCBpackageInfo(type){
|
||||
jQuery('#noticeboard').show();
|
||||
jQuery('#installer-import').hide();
|
||||
// get value
|
||||
var url = jQuery('#'+type+'_package').val();
|
||||
if (url) {
|
||||
var key = url.replace(/\W/g, '');
|
||||
var package = jQuery('#'+type+'_package').val();
|
||||
if (package) {
|
||||
// check if the values are local
|
||||
var result = jQuery.jStorage.get('JCB-packages-details'+key, null);
|
||||
var result = jQuery.jStorage.get('JCB-packages-details'+package, null);
|
||||
if (result) {
|
||||
showJCBpackageInfo(result, key, type);
|
||||
showJCBpackageInfo(result, package, type);
|
||||
} else {
|
||||
getJCBpackageInfoAgain(url, key, type);
|
||||
getJCBpackageInfoAgain(package, type);
|
||||
}
|
||||
} else {
|
||||
// hide spinner
|
||||
@ -424,17 +422,17 @@ function getJCBpackageInfo(type){
|
||||
}
|
||||
}
|
||||
|
||||
function getJCBpackageInfoAgain(url, key,type){
|
||||
getJCBpackageInfo_server(url).done(function(result) {
|
||||
showJCBpackageInfo(result, key,type);
|
||||
function getJCBpackageInfoAgain(package, type){
|
||||
getJCBpackageInfo_server(package).done(function(result) {
|
||||
showJCBpackageInfo(result, package, type);
|
||||
});
|
||||
}
|
||||
|
||||
function showJCBpackageInfo(result, key,type){
|
||||
function showJCBpackageInfo(result, package, type){
|
||||
if(result.owner || result.packages){
|
||||
jQuery('#'+type+'_packages_details').html(result.packages);
|
||||
jQuery('#'+type+'_package_owner_details').html(result.owner);
|
||||
jQuery.jStorage.set('JCB-packages-details'+key, result, {TTL: expire});
|
||||
jQuery.jStorage.set('JCB-packages-details'+package, result, {TTL: expire});
|
||||
// some display moves
|
||||
jQuery('#'+type+'_packages_installer').removeClass('span12').addClass('span6');
|
||||
jQuery('#'+type+'_packages_display').addClass('span6');
|
||||
@ -454,10 +452,10 @@ function showJCBpackageInfo(result, key,type){
|
||||
jQuery('#installer-import').show();
|
||||
}
|
||||
|
||||
function getJCBpackageInfo_server(url){
|
||||
function getJCBpackageInfo_server(package){
|
||||
var getUrl = "index.php?option=com_componentbuilder&task=ajax.getJCBpackageInfo&format=json";
|
||||
if(token.length > 0 && url.length > 0){
|
||||
var request = 'token='+token+'&url=' + url;
|
||||
if(token.length > 0 && package.length > 0){
|
||||
var request = token + '=1&package=' + package;
|
||||
}
|
||||
return jQuery.ajax({
|
||||
type: 'GET',
|
||||
@ -475,7 +473,7 @@ jQuery(document).ready(function () {
|
||||
jQuery.get(noticeboard)
|
||||
.success(function(board) {
|
||||
if (board.length > 5) {
|
||||
jQuery(".noticeboard-md").html(marked(board));
|
||||
jQuery(".noticeboard-md").html(marked.parse(board));
|
||||
getIS(1,board).done(function(result) {
|
||||
if (result){
|
||||
jQuery(".vdm-new-notice").show();
|
||||
|
@ -57,7 +57,7 @@ class ComponentbuilderViewImport_joomla_components extends HtmlView
|
||||
$this->addToolbar();
|
||||
$this->sidebar = JHtmlSidebar::render();
|
||||
// add title to the page
|
||||
JToolbarHelper::title(JText::_('COM_COMPONENTBUILDER_JCB_PACKAGE_IMPORT'),'upload');
|
||||
JToolbarHelper::title(JText::_('COM_COMPONENTBUILDER_JCB_PACKAGE_IMPORT'), 'upload');
|
||||
// add refesh button.
|
||||
JToolBarHelper::custom('joomla_component.refresh', 'refresh', '', 'COM_COMPONENTBUILDER_REFRESH', false);
|
||||
}
|
||||
@ -75,7 +75,7 @@ class ComponentbuilderViewImport_joomla_components extends HtmlView
|
||||
$manageDirectories = $this->params->get('manage_jcb_package_directories', 2);
|
||||
if ($manageDirectories == 2)
|
||||
{
|
||||
$this->directories = array('vdm','jcb');
|
||||
$this->directories = array('vdm', 'jcb');
|
||||
}
|
||||
elseif ($manageDirectories == 1)
|
||||
{
|
||||
@ -122,7 +122,7 @@ class ComponentbuilderViewImport_joomla_components extends HtmlView
|
||||
$this->document->addScript(JURI::root() .'media/com_componentbuilder/js/jstorage.min.js');
|
||||
$this->document->addScript(JURI::root() .'media/com_componentbuilder/js/strtotime.js');
|
||||
// add marked library
|
||||
$this->document->addScript(JURI::root() . "administrator/components/com_componentbuilder/custom/marked.js");
|
||||
$this->document->addScript(JURI::root() . "media/com_componentbuilder/js/marked.js");
|
||||
// check if we should use browser storage
|
||||
$setBrowserStorage = $this->params->get('set_browser_storage', null);
|
||||
if ($setBrowserStorage)
|
||||
@ -369,7 +369,7 @@ class ComponentbuilderViewImport_joomla_components extends HtmlView
|
||||
{
|
||||
if (strpos($vdmListObject->path, '.zip') !== false)
|
||||
{
|
||||
$vdm_packageOptions[ComponentbuilderHelper::$vdmGithubPackageUrl.$vdmListObject->path] = $this->setPackageName($vdmListObject->path);
|
||||
$vdm_packageOptions[base64_encode(ComponentbuilderHelper::$vdmGithubPackageUrl.$vdmListObject->path)] = $this->setPackageName($vdmListObject->path);
|
||||
$load = true;
|
||||
}
|
||||
}
|
||||
@ -413,7 +413,7 @@ class ComponentbuilderViewImport_joomla_components extends HtmlView
|
||||
{
|
||||
if (strpos($jcbListObject->path, '.zip') !== false)
|
||||
{
|
||||
$jcb_packageOptions[ComponentbuilderHelper::$jcbGithubPackageUrl.$jcbListObject->path] = $this->setPackageName($jcbListObject->path);
|
||||
$jcb_packageOptions[base64_encode(ComponentbuilderHelper::$jcbGithubPackageUrl.$jcbListObject->path)] = $this->setPackageName($jcbListObject->path);
|
||||
$load = true;
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" version="4" method="upgrade">
|
||||
<name>COM_COMPONENTBUILDER</name>
|
||||
<creationDate>27th May, 2022</creationDate>
|
||||
<creationDate>2nd June, 2022</creationDate>
|
||||
<author>Llewellyn van der Merwe</author>
|
||||
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
|
||||
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
|
||||
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<version>2.13.0</version>
|
||||
<version>2.13.1</version>
|
||||
<description><![CDATA[
|
||||
<h1>Component Builder (v.2.13.0)</h1>
|
||||
<h1>Component Builder (v.2.13.1)</h1>
|
||||
<div style="clear: both;"></div>
|
||||
<p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.
|
||||
|
||||
|
@ -1058,10 +1058,10 @@
|
||||
<description>Builds Complex Joomla Components</description>
|
||||
<element>com_componentbuilder</element>
|
||||
<type>component</type>
|
||||
<version>2.13.0</version>
|
||||
<version>2.13.1</version>
|
||||
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
|
||||
<downloads>
|
||||
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.13.0/JCB_v2.13.0.zip</downloadurl>
|
||||
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.13.1/JCB_v2.13.1.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>stable</tag>
|
||||
|
@ -109,7 +109,7 @@ abstract class StringHelper
|
||||
{
|
||||
if ($replaceNumbers === true)
|
||||
{
|
||||
// remove all numbers and replace with english text version (works well only up to millions)
|
||||
// remove all numbers and replace with English text version (works well only up to millions)
|
||||
$string = self::numbers($string);
|
||||
}
|
||||
// 0nly continue if we have a string
|
||||
|
@ -9254,7 +9254,7 @@ class com_componentbuilderInstallerScript
|
||||
echo '<a target="_blank" href="http://www.joomlacomponentbuilder.com" title="Component Builder">
|
||||
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
|
||||
</a>
|
||||
<h3>Upgrade to Version 2.13.0 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||
<h3>Upgrade to Version 2.13.1 Was Successful! Let us know if anything is not working as expected.</h3>';
|
||||
|
||||
// Set db if not set already.
|
||||
if (!isset($db))
|
||||
|
Loading…
Reference in New Issue
Block a user