Added Plugin and Module Translation integration. #537

Merged
Llewellyn merged 8 commits from staging into master 2020-04-05 00:02:02 +00:00
111 changed files with 26493 additions and 9973 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea

View File

@ -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 safe 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.10.11) 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.10.13) 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)
@ -144,14 +144,14 @@ 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*: 17th February, 2020
+ *Version*: 2.10.11
+ *Last Build*: 3rd April, 2020
+ *Version*: 2.10.13
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **278479**
+ *Field count*: **1505**
+ *File count*: **1756**
+ *Folder count*: **278**
+ *Line count*: **280662**
+ *Field count*: **1514**
+ *File count*: **1771**
+ *Folder count*: **287**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -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 safe 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.10.11) 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.10.13) 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)
@ -144,14 +144,14 @@ 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*: 17th February, 2020
+ *Version*: 2.10.11
+ *Last Build*: 3rd April, 2020
+ *Version*: 2.10.13
+ *Copyright*: Copyright (C) 2015 - 2020 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **278479**
+ *Field count*: **1505**
+ *File count*: **1756**
+ *Folder count*: **278**
+ *Line count*: **280662**
+ *Field count*: **1514**
+ *File count*: **1771**
+ *Folder count*: **287**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -80,8 +80,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -229,7 +229,7 @@
label="COM_COMPONENTBUILDER_CONFIG_LANGUAGE_LABEL"
class="list_class"
multiple="false"
default="0"
default="en-GB"
required="true"
button="true"
/>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5677,27 +5677,87 @@ abstract class ComponentbuilderHelper
}
/**
* set the date as 2004/05 (for charts)
* set the date day as Sunday through Saturday
*/
public static function setYearMonth($date)
public static function setDayName($date)
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('Y/m', $date);
return date('l', $date);
}
/**
* set the date month as January through December
*/
public static function setMonthName($date)
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('F', $date);
}
/**
* set the date day as 1st
*/
public static function setDay($date)
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('jS', $date);
}
/**
* set the date month as 5
*/
public static function setMonth($date)
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('n', $date);
}
/**
* set the date year as 2004 (for charts)
*/
public static function setYear($date)
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('Y', $date);
}
/**
* set the date as 2004/05 (for charts)
*/
public static function setYearMonth($date, $spacer = '/')
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('Y' . $spacer . 'm', $date);
}
/**
* set the date as 2004/05/03 (for charts)
*/
public static function setYearMonthDay($date)
public static function setYearMonthDay($date, $spacer = '/')
{
if (!self::isValidTimeStamp($date))
{
$date = strtotime($date);
}
return date('Y/m/d', $date);
return date('Y' . $spacer . 'm' . $spacer . 'd', $date);
}
/**

View File

@ -1375,6 +1375,7 @@ COM_COMPONENTBUILDER_ALL_OF_THESE_PACKAGES_ARE_A_FULLY_DEVELOPEDMAPPED_COMPONENT
COM_COMPONENTBUILDER_ALL_THE_LANGUAGES_FOUND_IN_JOOMLA_WERE_SUCCESSFULLY_IMPORTED="All the languages found in Joomla were successfully imported."
COM_COMPONENTBUILDER_ALL_UNSAVED_WORK_ON_THIS_PAGE_WILL_BE_LOST_ARE_YOU_SURE_YOU_WANT_TO_CONTINUE="All unsaved work on this page will be lost, are you sure you want to continue?"
COM_COMPONENTBUILDER_ALREADY_SELECTED_TRY_ANOTHER="Already selected, try another."
COM_COMPONENTBUILDER_ALREADY_TRANSLATED_INTO="Already translated into"
COM_COMPONENTBUILDER_ALWAYS_ADD="Always Add"
COM_COMPONENTBUILDER_ALWAYS_INSURE_THAT_YOU_HAVE_YOUR_LOCAL_COMPONENTS_BACKED_UP_BY_MAKING_AN_EXPORT_OF_ALL_YOUR_LOCAL_COMPONENTS_BEFORE_IMPORTING_ANY_NEW_COMPONENTS_SMALLMAKE_BSUREB_TO_MOVE_THIS_ZIPPED_BACKUP_PACKAGE_OUT_OF_THE_TMP_FOLDER_BEFORE_DOING_AN_IMPORTSMALLBR_IF_YOU_ARE_IMPORTING_A_PACKAGE_OF_A_THREERD_PARTY_JCB_PACKAGE_DEVELOPER_BMAKE_SURE_IT_IS_A_REPUTABLE_JCB_PACKAGE_DEVELOPERSB_A_SFIND_OUT_WHYA="Always insure that you have your local components backed up, by making an export of all your local components before importing any new components. <small>(Make <b>SURE</b> to move this zipped backup package out of the tmp folder before doing an import)</small><br />If you are importing a package of a 3rd party JCB package developer, <b>make sure it is a reputable JCB package developers!</b> <a %s>Find out why!</a>"
COM_COMPONENTBUILDER_ANY_SELECTION_ONLY_FOUR_LISTRADIOCHECKBOXESDYNAMIC_LIST="Any Selection (only 4 list/radio/checkboxes/dynamic_list)"
@ -1752,6 +1753,7 @@ COM_COMPONENTBUILDER_COMPILER_SUBMENU_DESC="Allows the users in this group to su
COM_COMPONENTBUILDER_COMPILER_TRANSLATE_BUTTON_ACCESS="Compiler Translate Button Access"
COM_COMPONENTBUILDER_COMPILER_TRANSLATE_BUTTON_ACCESS_DESC="Allows the users in this group to access the translate button."
COM_COMPONENTBUILDER_COMPILE_COMPONENT="Compile Component"
COM_COMPONENTBUILDER_COMPONENT="Component"
COM_COMPONENTBUILDER_COMPONENTS="Components"
COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS="Components Admin Views"
COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_ACCESS="Components Admin Views Access"
@ -6167,6 +6169,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL="Add Sql Uninstall"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_UNINSTALL_LABEL="Add MySQL - (Uninstall)"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER="Add Update Server"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_UPDATE_SERVER_LABEL="Add Update Server"
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADMIN="Admin"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS="class"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE="Class Helper Code"
COM_COMPONENTBUILDER_JOOMLA_MODULE_CLASS_HELPER_CODE_DESCRIPTION="Add the class properties & methods here."
@ -6422,6 +6425,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_SALES_SERVER_LABEL="Sales Server"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Joomla Module to customise the alias."
COM_COMPONENTBUILDER_JOOMLA_MODULE_SCRIPT_FILE="Script File"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SERVER="Server"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SITE="Site"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET="Snippet"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_DESCRIPTION="Select a snippet you would like to use or review."
COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_LABEL="Select a Snippet"
@ -6439,6 +6443,9 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_DESCRIPTION="Used only in the sys
COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_HINT="The System Name Here"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_LABEL="System Name"
COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_MESSAGE="Error! Please add some text here."
COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET="Target"
COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_DESCRIPTION="Set the area this module is targeting."
COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL="Target Area"
COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES="Joomla Module Updates"
COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_CREATED_BY_DESC="The user that created this Joomla Module Updates."
COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATES_CREATED_BY_LABEL="Created By"
@ -7141,7 +7148,7 @@ COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_N_ITEMS_UNPUBLISHED_1="%s Language Tr
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU="Language Translations Submenu"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATIONS_SUBMENU_DESC="Allows the users in this group to submenu of language translation"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS="Components"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL="Components"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL="Components<br /><small>source string is used in these components</small>"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_BY_DESC="The user that created this Language Translation."
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_BY_LABEL="Created By"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_CREATED_DATE_DESC="The date this Language Translation was created."
@ -7156,9 +7163,13 @@ COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_BY_DESC="The last user that m
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_BY_LABEL="Modified By"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_DATE_DESC="The date this Language Translation was modified."
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODIFIED_DATE_LABEL="Modified Date"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODULES="Modules"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODULES_LABEL="Modules<br /><small>source string is used in these modules</small>"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_NEW="A New Language Translation"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_ORDERING_LABEL="Ordering"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PERMISSION="Permissions"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PLUGINS="Plugins"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PLUGINS_LABEL="Plugins<br /><small>source string is used in these plugins</small>"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PUBLISHING="Publishing"
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Language Translation to customise the alias."
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_SOURCE="Source"
@ -7704,6 +7715,8 @@ COM_COMPONENTBUILDER_MINIFY_JAVASCRIPT="Minify JavaScript"
COM_COMPONENTBUILDER_MIN_LENGTH_ONLY_FOUR_TEXT_FIELD="Min Length (only 4 text_field)"
COM_COMPONENTBUILDER_MODEL_AFTER_MODELLING="Model (after modelling)"
COM_COMPONENTBUILDER_MODEL_BEFORE_MODELLING="Model (before modelling)"
COM_COMPONENTBUILDER_MODULE="Module"
COM_COMPONENTBUILDER_MODULES="Modules"
COM_COMPONENTBUILDER_NAME="Name"
COM_COMPONENTBUILDER_NAME_ASC="Name (Asc)"
COM_COMPONENTBUILDER_NAME_DESC="Name (Desc)"
@ -7886,6 +7899,8 @@ COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="P
COM_COMPONENTBUILDER_PLEASE_TRY_AGAIN_LATER="Please try again later"
COM_COMPONENTBUILDER_PLEASE_WAIT_CLEARING_THE_TMP_FOLDER="Please wait! Clearing the tmp folder"
COM_COMPONENTBUILDER_PLEASE_WAIT_LOADING="Please wait, loading"
COM_COMPONENTBUILDER_PLUGIN="Plugin"
COM_COMPONENTBUILDER_PLUGINS="Plugins"
COM_COMPONENTBUILDER_PROPERTIES="Properties"
COM_COMPONENTBUILDER_PROPERTIESBR_SMALLHERE_YOU_CAN_SET_THE_PROPERTIES_FOR_THIS_FIELDSMALL="Properties<br /><small>Here you can set the properties for this field.</small>"
COM_COMPONENTBUILDER_PROPERTY="Property"
@ -9049,7 +9064,7 @@ COM_COMPONENTBUILDER_UPDATE_ALL_DIVERGED_SNIPPETS="Update All Diverged Snippets"
COM_COMPONENTBUILDER_UPDATE_ALL_OUT_DATED_SNIPPETS="Update All Out Dated Snippets"
COM_COMPONENTBUILDER_UP_TO_DATE="Up to date"
COM_COMPONENTBUILDER_USAGE="Usage"
COM_COMPONENTBUILDER_USED_IN="used in"
COM_COMPONENTBUILDER_USED_IN="Used in"
COM_COMPONENTBUILDER_USE_BATCH="Use Batch"
COM_COMPONENTBUILDER_USE_BATCH_DESC="Allows users in this group to use batch copy/update method."
COM_COMPONENTBUILDER_USE_KEY="Use Key"

View File

@ -27,7 +27,8 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
// get the fields
$fields = $displayData->get($fields_tab_layout) ?: array(
'system_name',
'module_version'
'module_version',
'target'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -28,7 +28,9 @@ $fields_tab_layout = 'fields_' . $layout_path_array[1];
$fields = $displayData->get($fields_tab_layout) ?: array(
'source',
'translation',
'components'
'components',
'modules',
'plugins'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();

View File

@ -0,0 +1,176 @@
<?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 - 2020 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('_JEXEC') or die('Restricted access');
// import the list field type
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
/**
* Excludedlanguages Form Field class for the Componentbuilder component
*/
class JFormFieldExcludedlanguages extends JFormFieldList
{
/**
* The excludedlanguages field type.
*
* @var string
*/
public $type = 'excludedlanguages';
/**
* Override to add new button
*
* @return string The field input markup.
*
* @since 3.2
*/
protected function getInput()
{
// see if we should add buttons
$set_button = $this->getAttribute('button');
// get html
$html = parent::getInput();
// if true set button
if ($set_button === 'true')
{
$button = array();
$script = array();
$button_code_name = $this->getAttribute('name');
// get the input from url
$app = JFactory::getApplication();
$jinput = $app->input;
// get the view name & id
$values = $jinput->getArray(array(
'id' => 'int',
'view' => 'word'
));
// check if new item
$ref = '';
$refJ = '';
if (!is_null($values['id']) && strlen($values['view']))
{
// only load referral if not new item.
$ref = '&amp;ref=' . $values['view'] . '&amp;refid=' . $values['id'];
$refJ = '&ref=' . $values['view'] . '&refid=' . $values['id'];
// get the return value.
$_uri = (string) JUri::getInstance();
$_return = urlencode(base64_encode($_uri));
// load return value.
$ref .= '&amp;return=' . $_return;
$refJ .= '&return=' . $_return;
}
// get button label
$button_label = trim($button_code_name);
$button_label = preg_replace('/_+/', ' ', $button_label);
$button_label = preg_replace('/\s+/', ' ', $button_label);
$button_label = preg_replace("/[^A-Za-z ]/", '', $button_label);
$button_label = ucfirst(strtolower($button_label));
// get user object
$user = JFactory::getUser();
// only add if user allowed to create language
if ($user->authorise('language.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area.
{
// build Create button
$button[] = '<a id="'.$button_code_name.'Create" class="btn btn-small btn-success hasTooltip" title="'.JText::sprintf('PLG_CONTENT_COMPONENTBUILDERLANGUAGETABS_CREATE_NEW_S', $button_label).'" style="border-radius: 0px 4px 4px 0px; padding: 4px 4px 4px 7px;"
href="index.php?option=com_componentbuilder&amp;view=language&amp;layout=edit'.$ref.'" >
<span class="icon-new icon-white"></span></a>';
}
// only add if user allowed to edit language
if ($user->authorise('language.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area.
{
// build edit button
$button[] = '<a id="'.$button_code_name.'Edit" class="btn btn-small hasTooltip" title="'.JText::sprintf('PLG_CONTENT_COMPONENTBUILDERLANGUAGETABS_EDIT_S', $button_label).'" style="display: none; padding: 4px 4px 4px 7px;" href="#" >
<span class="icon-edit"></span></a>';
// build script
$script[] = "
jQuery(document).ready(function() {
jQuery('#adminForm').on('change', '#jform_".$button_code_name."',function (e) {
e.preventDefault();
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$button_code_name."Button(".$button_code_name."Value);
});
var ".$button_code_name."Value = jQuery('#jform_".$button_code_name."').val();
".$button_code_name."Button(".$button_code_name."Value);
});
function ".$button_code_name."Button(value) {
if (value > 0) {
// hide the create button
jQuery('#".$button_code_name."Create').hide();
// show edit button
jQuery('#".$button_code_name."Edit').show();
var url = 'index.php?option=com_componentbuilder&view=languages&task=language.edit&id='+value+'".$refJ."';
jQuery('#".$button_code_name."Edit').attr('href', url);
} else {
// show the create button
jQuery('#".$button_code_name."Create').show();
// hide edit button
jQuery('#".$button_code_name."Edit').hide();
}
}";
}
// check if button was created for language field.
if (is_array($button) && count($button) > 0)
{
// Load the needed script.
$document = JFactory::getDocument();
$document->addScriptDeclaration(implode(' ',$script));
// return the button attached to input field.
return '<div class="input-append">' .$html . implode('',$button).'</div>';
}
}
return $html;
}
/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*/
protected function getOptions()
{
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('a.langtag','a.name'),array('langtag','languages_name')));
$query->from($db->quoteName('#__componentbuilder_language', 'a'));
$query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.langtag ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
// add the main language
$main_lang = trim(JComponentHelper::getParams('com_componentbuilder')->get('language', 'en-GB'));
// check if any language was added
$wasAdded = false;
$options = array();
if ($items)
{
$options[] = JHtml::_('select.option', '', 'Select an option');
foreach($items as $item)
{
$item->langtag = trim($item->langtag);
// do not add main language
if ($main_lang !== $item->langtag)
{
$options[] = JHtml::_('select.option', $item->langtag, $item->languages_name . ' (' .$item->langtag.')');
$wasAdded = true;
}
}
}
// now if none was added give notice
if (!$wasAdded)
{
$options[] = JHtml::_('select.option', '', 'Add languages to select');
}
return $options;
}
}

View File

@ -43,7 +43,9 @@ $query->where($db->quoteName('a.published') . ' >= 1');
$query->order('a.langtag ASC');
$db->setQuery((string)$query);
$items = $db->loadObjectList();
// make sure the English GB is added
// add the main language
$main_lang = trim(JComponentHelper::getParams('com_componentbuilder')->get('language', 'en-GB'));
// make sure the main language is added
$wasAdded = false;
$options = array();
if ($items)
@ -51,17 +53,25 @@ if ($items)
$options[] = JHtml::_('select.option', '', 'Select an option');
foreach($items as $item)
{
$options[] = JHtml::_('select.option', trim($item->langtag), $item->language_name . ' (' .$item->langtag.')');
if ('en-GB' === trim($item->langtag))
$item->langtag = trim($item->langtag);
$options[] = JHtml::_('select.option', $item->langtag, $item->language_name . ' (' .$item->langtag.')');
if ($main_lang === $item->langtag)
{
$wasAdded = true;
}
}
}
// now add it if not already added
// now add it if not already added (it must default to $main_lang)
if (!$wasAdded)
{
$options[] = JHtml::_('select.option', 'en-GB', 'English GB (en-GB)');
if ('en-GB' === $main_lang)
{
$options[] = JHtml::_('select.option', $main_lang, 'English GB (' . $main_lang . ')');
}
else
{
$options[] = JHtml::_('select.option', $main_lang, 'Main Language (' . $main_lang . ')');
}
}
return $options;
}

View File

@ -755,31 +755,46 @@ function vvvvwac(add_custom_button_vvvvwac)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -379,7 +379,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Sql Field. Type: Textarea. (joomla) -->
<field

View File

@ -74,31 +74,46 @@ function extension_type_vvvvwcg_SomeFunc(extension_type_vvvvwcg)
return false;
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -74,31 +74,46 @@ function extension_type_vvvvwcf_SomeFunc(extension_type_vvvvwcf)
return false;
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -310,7 +310,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Add_js_document Field. Type: Radio. (joomla) -->
<field

View File

@ -178,31 +178,46 @@ function vvvvwce(type_vvvvwce,target_vvvvwce)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -158,7 +158,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Function_name Field. Type: Text. (joomla) -->
<field

View File

@ -1349,31 +1349,46 @@ function gettype_vvvvwca_SomeFunc(gettype_vvvvwca)
return false;
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -682,7 +682,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Add_php_before_getitems Field. Type: Radio. (joomla) -->
<field

View File

@ -671,31 +671,46 @@ function vvvvwdl(add_javascript_views_footer_vvvvwdl)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -469,7 +469,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Add_javascript_view_footer Field. Type: Radio. (joomla) -->
<field

View File

@ -846,31 +846,46 @@ function vvvvwdz(has_defaults_vvvvwdz)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -295,7 +295,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Properties Field. Type: Subform. (joomla) -->
<field

View File

@ -283,31 +283,46 @@ function vvvvwep(target_vvvvwep)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -165,7 +165,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Content Field. Type: Editor. (joomla) -->
<field

View File

@ -726,31 +726,46 @@ function translation_tool_vvvvvxa_SomeFunc(translation_tool_vvvvvxa)
return false;
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -768,7 +768,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Crowdin_project_identifier Field. Type: Text. (joomla) -->
<field

View File

@ -476,31 +476,46 @@ function vvvvvxw(addreadme_vvvvvxw)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -99,6 +99,22 @@
message="COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_MESSAGE"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_HINT"
/>
<!-- Target Field. Type: Radio. (joomla) -->
<field
type="radio"
name="target"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_DESCRIPTION"
class="btn-group btn-group-yesno"
default="1"
required="true"
validate="int">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_SITE</option>
<option value="2">
COM_COMPONENTBUILDER_JOOMLA_MODULE_ADMIN</option>
</field>
<!-- Description Field. Type: Textarea. (joomla) -->
<field
type="textarea"
@ -111,6 +127,34 @@
filter="HTML"
hint="COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_HINT"
/>
<!-- Add_php_method_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_METHOD_UNINSTALL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_php_postflight_update Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_postflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_POSTFLIGHT_UPDATE_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_php_postflight_install Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -139,17 +183,76 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Update_server Field. Type: Servers. (custom) -->
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="servers"
name="update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_DESCRIPTION"
type="radio"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME_LABEL"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Note_libraries_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_libraries_options" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_libraries_options" />
<!-- Note_linked_to_notice Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_linked_to_notice" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_DESCRIPTION" heading="h4" class="note_linked_to_notice" />
<!-- Not_required Field. Type: Hidden. (joomla) -->
<field
type="hidden"
name="not_required"
default="一_一"
/>
<!-- Note_snippet_usage Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_snippet_usage" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_SNIPPET_USAGE_LABEL" heading="h4" class="snippet-usage note_snippet_usage" />
<!-- Default Field. Type: Editor. (joomla) -->
<field
type="editor"
name="default"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_DESCRIPTION"
width="100%"
height="500px"
cols="15"
rows="30"
buttons="no"
syntax="html"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Note_uikit_snippet Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_uikit_snippet" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UIKIT_SNIPPET_LABEL" heading="h4" class="snippet-code note_uikit_snippet" />
<!-- Snippet Field. Type: Snippets. (custom) -->
<field
type="snippets"
name="snippet"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_DESCRIPTION"
class="list_class"
multiple="false"
default="0"
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" />
<!-- Add_sql Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sql"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Update_server_target Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -167,108 +270,6 @@
<option value="3">
COM_COMPONENTBUILDER_JOOMLA_MODULE_OTHER</option>
</field>
<!-- Addreadme Field. Type: Radio. (joomla) -->
<field
type="radio"
name="addreadme"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADDREADME_LABEL"
class="btn-group btn-group-yesno"
default="0">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_sql Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_sql"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_SQL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Note_snippet_usage Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_snippet_usage" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_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_JOOMLA_MODULE_NOTE_UIKIT_SNIPPET_LABEL" heading="h4" class="snippet-code note_uikit_snippet" />
<!-- Snippet Field. Type: Snippets. (custom) -->
<field
type="snippets"
name="snippet"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_SNIPPET_DESCRIPTION"
class="list_class"
multiple="false"
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_libraries_options Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_libraries_options" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION" heading="h4" class="alert alert-info note_libraries_options" />
<!-- Libraries Field. Type: Libraries. (custom) -->
<field
type="libraries"
name="libraries"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_DESCRIPTION"
class="list_class"
multiple="true"
default="0"
required="false"
button="true"
/>
<!-- Add_php_postflight_update Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_postflight_update"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_POSTFLIGHT_UPDATE_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Add_php_method_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
name="add_php_method_uninstall"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_ADD_PHP_METHOD_UNINSTALL_LABEL"
class="btn-group btn-group-yesno"
default="0"
required="true">
<!-- Option Set. -->
<option value="1">
COM_COMPONENTBUILDER_JOOMLA_MODULE_YES</option>
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Default Field. Type: Editor. (joomla) -->
<field
type="editor"
name="default"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_DEFAULT_DESCRIPTION"
width="100%"
height="500px"
cols="15"
rows="30"
buttons="no"
syntax="html"
editor="codemirror|none"
filter="raw"
validate="code"
/>
<!-- Add_sql_uninstall Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -283,8 +284,17 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Note_linked_to_notice Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_linked_to_notice" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LINKED_TO_NOTICE_DESCRIPTION" heading="h4" class="note_linked_to_notice" />
<!-- Update_server Field. Type: Servers. (custom) -->
<field
type="servers"
name="update_server"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_UPDATE_SERVER_DESCRIPTION"
class="list_class"
multiple="false"
default="0"
button="true"
/>
<!-- Add_update_server Field. Type: Radio. (joomla) -->
<field
type="radio"
@ -299,11 +309,17 @@
<option value="0">
COM_COMPONENTBUILDER_JOOMLA_MODULE_NO</option>
</field>
<!-- Not_required Field. Type: Hidden. (joomla) -->
<!-- Libraries Field. Type: Libraries. (custom) -->
<field
type="hidden"
name="not_required"
default="[]"
type="libraries"
name="libraries"
label="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_LABEL"
description="COM_COMPONENTBUILDER_JOOMLA_MODULE_LIBRARIES_DESCRIPTION"
class="list_class"
multiple="true"
default="0"
required="false"
button="true"
/>
<!-- Note_update_server_note_zip Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_update_server_note_zip" label="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_LABEL" description="COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_UPDATE_SERVER_NOTE_ZIP_DESCRIPTION" heading="h4" class="alert alert-info note_update_server_note_zip" />

View File

@ -612,31 +612,46 @@ function vvvvvyu(addreadme_vvvvvyu)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -378,7 +378,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Php_postflight_install Field. Type: Editor. (joomla) -->
<field

View File

@ -100,15 +100,34 @@
readonly="true"
disabled="true"
/>
<!-- Plugins Field. Type: Joomlaplugins. (custom) -->
<field
type="joomlaplugins"
name="plugins"
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_PLUGINS_LABEL"
class="list_class span12"
multiple="true"
default="0"
button="true"
/>
<!-- Modules Field. Type: Joomlamodules. (custom) -->
<field
type="joomlamodules"
name="modules"
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_MODULES_LABEL"
class="list_class span12"
multiple="true"
default="0"
button="true"
/>
<!-- Components Field. Type: Components. (custom) -->
<field
type="components"
name="components"
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_COMPONENTS_LABEL"
class="list_class"
class="list_class span12"
multiple="true"
default="0"
required="true"
button="false"
/>
<!-- Translation Field. Type: Subform. (joomla) -->
@ -141,7 +160,7 @@
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE_LABEL"
class="list_class"
multiple="false"
default="0"
default="en-GB"
required="true"
button="false"
/>

View File

@ -175,7 +175,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Layout Field. Type: Editor. (joomla) -->
<field

View File

@ -795,31 +795,46 @@ function vvvvwcy(target_vvvvwcy)
}
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -173,7 +173,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Note_yes_behaviour_one Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_yes_behaviour_one" label="COM_COMPONENTBUILDER_LIBRARY_NOTE_YES_BEHAVIOUR_ONE_LABEL" description="COM_COMPONENTBUILDER_LIBRARY_NOTE_YES_BEHAVIOUR_ONE_DESCRIPTION" heading="h4" class="alert alert-success note_yes_behaviour_one" />

View File

@ -539,31 +539,46 @@ function authentication_vvvvwei_SomeFunc(authentication_vvvvwei)
return false;
}
// update required fields
function updateFieldRequired(name,status)
{
var not_required = jQuery('#jform_not_required').val();
// update fields required
function updateFieldRequired(name, status) {
// check if not_required exist
if (jQuery('#jform_not_required').length > 0) {
var not_required = jQuery('#jform_not_required').val().split(",");
if(status == 1)
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required+','+name;
not_required.push(name);
}
else
{
not_required = ','+name;
not_required = removeFieldFromNotRequired(not_required, name);
}
}
else
{
if (isSet(not_required) && not_required != 0)
{
not_required = not_required.replace(','+name,'');
jQuery('#jform_not_required').val(fixNotRequiredArray(not_required).toString());
}
}
jQuery('#jform_not_required').val(not_required);
// remove field from not_required
function removeFieldFromNotRequired(array, what) {
return array.filter(function(element){
return element !== what;
});
}
// fix not required array
function fixNotRequiredArray(array) {
var seen = {};
return removeEmptyFromNotRequiredArray(array).filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
// remove empty from not_required array
function removeEmptyFromNotRequiredArray(array) {
return array.filter(function (el) {
// remove ( 一_一) as well - lol
return (el.length > 0 && '一_一' !== el);
});
}
// the isSet function

View File

@ -126,7 +126,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Note_ftp_signature Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_ftp_signature" label="COM_COMPONENTBUILDER_SERVER_NOTE_FTP_SIGNATURE_LABEL" description="COM_COMPONENTBUILDER_SERVER_NOTE_FTP_SIGNATURE_DESCRIPTION" heading="h4" class="alert alert-success note_ftp_signature" />

View File

@ -249,7 +249,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Default Field. Type: Editor. (joomla) -->
<field

View File

@ -164,7 +164,7 @@
<field
type="hidden"
name="not_required"
default="[]"
default="一_一"
/>
<!-- Template Field. Type: Editor. (joomla) -->
<field

View File

@ -699,13 +699,13 @@ class ComponentbuilderModelImport_joomla_components extends JModelLegacy
// the array of tables to store
$tables = array(
'validation_rule', 'fieldtype', 'field', 'admin_view', 'snippet', 'dynamic_get', 'custom_admin_view', 'site_view',
'template', 'layout', 'joomla_component', 'language', 'language_translation', 'custom_code', 'placeholder', 'class_extends',
'template', 'layout', 'joomla_component', 'language', 'custom_code', 'placeholder', 'class_extends',
'joomla_module', 'joomla_module_files_folders_urls', 'joomla_module_updates',
'joomla_plugin_group', 'class_property', 'class_method', 'joomla_plugin', 'joomla_plugin_files_folders_urls', 'joomla_plugin_updates',
'admin_fields', 'admin_fields_conditions', 'admin_fields_relations', 'admin_custom_tabs', 'component_admin_views',
'component_site_views', 'component_custom_admin_views', 'component_updates', 'component_mysql_tweaks',
'component_custom_admin_menus', 'component_config', 'component_dashboard', 'component_files_folders',
'component_placeholders', 'component_modules', 'component_plugins'
'component_placeholders', 'component_modules', 'component_plugins', 'language_translation'
);
// get prefix
$prefix = $this->_db->getPrefix();
@ -786,6 +786,8 @@ class ComponentbuilderModelImport_joomla_components extends JModelLegacy
if ($table === 'language_translation')
{
$item->localComponents = $local->components;
$item->localModules = $local->modules;
$item->localPlugins = $local->plugins;
$item->localTranslation = $local->translation;
}
// make sure we have the correct ID set
@ -2192,17 +2194,25 @@ class ComponentbuilderModelImport_joomla_components extends JModelLegacy
$item = $this->setNewID($item, 'component', 'joomla_component', $type);
break;
case 'language_translation':
// update the component ID where needed
$item = $this->setNewID($item, 'component', 'joomla_component', $type);
// load the local components if found
if (isset($item->localComponents) && ComponentbuilderHelper::checkJson($item->localComponents))
$langKeys = array(
array('target' => 'components', 'parent' => 'joomla_component', 'local' => 'localComponents'),
array('target' => 'modules', 'parent' => 'joomla_module', 'local' => 'localModules'),
array('target' => 'plugins', 'parent' => 'joomla_plugin', 'local' => 'localPlugins')
);
// we have a few to check so we loop them
foreach ($langKeys as $lang)
{
$components = array();
if (isset($item->components) && ComponentbuilderHelper::checkJson($item->components))
// update the target ID where needed
$item = $this->setNewID($item, $lang['target'], 'joomla_component', $type);
// load the local targets if found
if (isset($item->{$lang['local']}) && ComponentbuilderHelper::checkJson($item->{$lang['local']}))
{
$components = json_decode($item->components, true);
$targets = array();
if (isset($item->{$lang['target']}) && ComponentbuilderHelper::checkJson($item->{$lang['target']}))
{
$targets = json_decode($item->{$lang['target']}, true);
}
$localComponents = json_decode($item->localComponents, true);
$localComponents = json_decode($item->{$lang['local']}, true);
foreach ($localComponents as $lid)
{
if (!is_numeric($lid))
@ -2210,22 +2220,23 @@ class ComponentbuilderModelImport_joomla_components extends JModelLegacy
continue;
}
// add if not already there
if (!in_array($lid, $components))
if (!in_array($lid, $targets))
{
$components[] = $lid;
$targets[] = $lid;
}
}
}
// remove the localComponents
if (isset($item->localComponents))
if (isset($item->{$lang['local']}))
{
unset($item->localComponents);
unset($item->{$lang['local']});
}
// load it back
if (isset($components) && ComponentbuilderHelper::checkArray($components))
if (isset($targets) && ComponentbuilderHelper::checkArray($targets))
{
// load it back
$item->components = json_encode(array_values($components), JSON_FORCE_OBJECT);
$item->{$lang['target']} = json_encode(array_values($targets), JSON_FORCE_OBJECT);
}
}
// merge the translations where needed
if (isset($item->translation) && isset($item->localTranslation)

View File

@ -131,16 +131,14 @@ class ComponentbuilderModelJoomla_components extends JModelList
{
// set custom folder path
$this->customPath = $this->params->get('custom_folder_path', JPATH_COMPONENT_ADMINISTRATOR.'/custom');
// set the backup paths
$comConfig = JFactory::getConfig();
$this->backupPath = $comConfig->get('tmp_path');
// check what type of export or backup this is
if ('backup' === $this->activeType || 'manualBackup' === $this->activeType)
{
// set the paths
if (!$this->backupPath = $this->params->get('cronjob_backup_folder_path', null))
{
// set the paths
$comConfig = JFactory::getConfig();
$this->backupPath = $comConfig->get('tmp_path');
}
// set the zip path
$this->zipPath = $this->params->get('cronjob_backup_folder_path', $this->backupPath);
// check what backup type we are working with here
$this->backupType = $this->params->get('cronjob_backup_type', 1); // 1 = local folder; 2 = remote server (default is local)
// if remote server get the ID
@ -162,9 +160,8 @@ class ComponentbuilderModelJoomla_components extends JModelList
}
else
{
// set the paths
$comConfig = JFactory::getConfig();
$this->backupPath = $comConfig->get('tmp_path');
// set the zip path
$this->zipPath = $this->backupPath;
// set the package name
if (count($items) == 1)
{
@ -177,7 +174,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
}
// set the package path
$this->packagePath = rtrim($this->backupPath, '/') . '/' . $this->packageName;
$this->zipPath = $this->packagePath .'.zip';
$this->zipPath = rtrim($this->zipPath, '/') . '/' . $this->packageName .'.zip';
if (JFolder::exists($this->packagePath))
{
// remove if old folder is found
@ -187,7 +184,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
JFolder::create($this->packagePath);
// Get the basic encryption.
$basickey = ComponentbuilderHelper::getCryptKey('basic');
// Get the encription object.
// Get the encryption object.
if ($basickey)
{
$basic = new FOFEncryptAes($basickey, 128);
@ -969,6 +966,8 @@ class ComponentbuilderModelJoomla_components extends JModelList
$this->setData('field', $this->getValues($item->fields, 'subform++', 'fields.field'), 'id');
// add dynamic gets
$this->setSmartIDs($item->custom_get, 'dynamic_get');
// set module language strings
$this->setLanguageTranslation($item->id, 'modules');
}
// actions to take if table is joomla_plugin
if ('joomla_plugin' === $table)
@ -985,6 +984,8 @@ class ComponentbuilderModelJoomla_components extends JModelList
$this->setData('class_property', $this->getValues($item->property_selection, 'subform', 'property'), 'id');
// add class_method
$this->setData('class_method', $this->getValues($item->method_selection, 'subform', 'method'), 'id');
// set plugin language strings
$this->setLanguageTranslation($item->id, 'plugins');
}
// actions to take if table is joomla_plugin_group
if ('joomla_plugin_group' === $table)
@ -1667,7 +1668,7 @@ class ComponentbuilderModelJoomla_components extends JModelList
* @return void
*
*/
protected function setLanguageTranslation(&$id)
protected function setLanguageTranslation(&$id, $target = 'components')
{
// Create a new query object.
$query = $this->_db->getQuery(true);
@ -1698,10 +1699,10 @@ class ComponentbuilderModelJoomla_components extends JModelList
}
foreach ($items as $item)
{
if (!isset($this->smartBox['language_translation'][$item->id]) && ComponentbuilderHelper::checkJson($item->components))
if (!isset($this->smartBox['language_translation'][$item->id]) && ComponentbuilderHelper::checkJson($item->{$target}))
{
$components = json_decode($item->components, true);
if (in_array($id, $components))
$targets = json_decode($item->{$target}, true);
if (in_array($id, $targets))
{
// load to global object
$this->smartBox['language_translation'][$item->id] = $item;

View File

@ -45,7 +45,8 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
),
'above' => array(
'system_name',
'module_version'
'module_version',
'target'
)
),
'script_file' => array(
@ -66,19 +67,6 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
'php_method_uninstall'
)
),
'dynamic_integration' => array(
'left' => array(
'add_update_server',
'update_server_url',
'update_server_target',
'note_update_server_note_ftp',
'note_update_server_note_zip',
'note_update_server_note_other',
'update_server',
'add_sales_server',
'sales_server'
)
),
'readme' => array(
'left' => array(
'addreadme',
@ -93,6 +81,19 @@ class ComponentbuilderModelJoomla_module extends JModelAdmin
'sql_uninstall'
)
),
'dynamic_integration' => array(
'left' => array(
'add_update_server',
'update_server_url',
'update_server_target',
'note_update_server_note_ftp',
'note_update_server_note_zip',
'note_update_server_note_other',
'update_server',
'add_sales_server',
'sales_server'
)
),
'code' => array(
'left' => array(
'custom_get'

View File

@ -28,7 +28,8 @@ class ComponentbuilderModelJoomla_modules extends JModelList
'a.created_by','created_by',
'a.modified_by','modified_by',
'a.system_name','system_name',
'a.description','description'
'a.description','description',
'a.target','target'
);
}
@ -55,6 +56,9 @@ class ComponentbuilderModelJoomla_modules extends JModelList
$description = $this->getUserStateFromRequest($this->context . '.filter.description', 'filter_description');
$this->setState('filter.description', $description);
$target = $this->getUserStateFromRequest($this->context . '.filter.target', 'filter_target');
$this->setState('filter.target', $target);
$sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int');
$this->setState('filter.sorting', $sorting);
@ -111,10 +115,44 @@ class ComponentbuilderModelJoomla_modules extends JModelList
}
}
// set selection value to a translatable value
if (ComponentbuilderHelper::checkArray($items))
{
foreach ($items as $nr => &$item)
{
// convert target
$item->target = $this->selectionTranslation($item->target, 'target');
}
}
// return items
return $items;
}
/**
* Method to convert selection values to translatable string.
*
* @return translatable string
*/
public function selectionTranslation($value,$name)
{
// Array of target language strings
if ($name === 'target')
{
$targetArray = array(
1 => 'COM_COMPONENTBUILDER_JOOMLA_MODULE_SITE',
2 => 'COM_COMPONENTBUILDER_JOOMLA_MODULE_ADMIN'
);
// Now check if value is found in this array
if (isset($targetArray[$value]) && ComponentbuilderHelper::checkString($targetArray[$value]))
{
return $targetArray[$value];
}
}
return $value;
}
/**
* Method to build an SQL query to load the list data.
*
@ -174,6 +212,11 @@ class ComponentbuilderModelJoomla_modules extends JModelList
}
}
// Filter by Target.
if ($target = $this->getState('filter.target'))
{
$query->where('a.target = ' . $db->quote($db->escape($target)));
}
// Add the list ordering clause.
$orderCol = $this->state->get('list.ordering', 'a.id');
@ -203,6 +246,7 @@ class ComponentbuilderModelJoomla_modules extends JModelList
$id .= ':' . $this->getState('filter.modified_by');
$id .= ':' . $this->getState('filter.system_name');
$id .= ':' . $this->getState('filter.description');
$id .= ':' . $this->getState('filter.target');
return parent::getStoreId($id);
}

View File

@ -29,7 +29,9 @@ class ComponentbuilderModelLanguage_translation extends JModelAdmin
'fullwidth' => array(
'source',
'translation',
'components'
'components',
'modules',
'plugins'
)
)
);
@ -905,6 +907,18 @@ class ComponentbuilderModelLanguage_translation extends JModelAdmin
$data['translation'] = '';
}
// Set the plugins string to JSON string.
if (isset($data['plugins']))
{
$data['plugins'] = (string) json_encode($data['plugins']);
}
// Set the modules string to JSON string.
if (isset($data['modules']))
{
$data['modules'] = (string) json_encode($data['modules']);
}
// Set the components string to JSON string.
if (isset($data['components']))
{

View File

@ -104,47 +104,10 @@ class ComponentbuilderModelLanguage_translations extends JModelList
continue;
}
}
}
// show all languages that are already set for this string
if (!isset($_export) && ComponentbuilderHelper::checkArray($items))
// escape all strings if not being exported
if (!isset($_export))
{
foreach ($items as $nr => &$item)
{
$langBucket = array();
if (ComponentbuilderHelper::checkJson($item->translation))
{
$translations = json_decode($item->translation, true);
if (ComponentbuilderHelper::checkArray($translations))
{
foreach ($translations as $language)
{
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
{
$langBucket[$language['language']] = $language['language'];
}
}
}
}
// set how many component use this string
$componentCounter = '';
if (ComponentbuilderHelper::checkJson($item->components))
{
$item->components = json_decode($item->components, true);
}
if (ComponentbuilderHelper::checkArray($item->components))
{
$componentCounter = ' - <small>' . JText::_('COM_COMPONENTBUILDER_USED_IN') . ' ' . count($item->components) . '</small>';
}
// load the languages to the string
if (ComponentbuilderHelper::checkArray($langBucket))
{
$item->source = '<small><em>(' . implode(', ', $langBucket) . ')</em></small> ' . ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150) . $componentCounter;
}
else
{
$item->source = '<small><em>(' . JText::_('COM_COMPONENTBUILDER_NOTRANSLATION') . ')</em></small> ' . ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150) . $componentCounter;
$item->source = ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150);
}
}
}
@ -157,6 +120,8 @@ class ComponentbuilderModelLanguage_translations extends JModelList
{
// remove some values completely
unset($item->components);
unset($item->modules);
unset($item->plugins);
unset($item->params);
unset($item->published);
unset($item->created_by);
@ -331,6 +296,11 @@ class ComponentbuilderModelLanguage_translations extends JModelList
continue;
}
// escape all strings if not being exported
if (!isset($_export))
{
$item->source = ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150);
}
// unset the values we don't want exported.
unset($item->asset_id);
unset($item->checked_out);
@ -344,48 +314,6 @@ class ComponentbuilderModelLanguage_translations extends JModelList
array_unshift($items,$headers);
}
// show all languages that are already set for this string
if (!isset($_export) && ComponentbuilderHelper::checkArray($items))
{
foreach ($items as $nr => &$item)
{
$langBucket = array();
if (ComponentbuilderHelper::checkJson($item->translation))
{
$translations = json_decode($item->translation, true);
if (ComponentbuilderHelper::checkArray($translations))
{
foreach ($translations as $language)
{
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
{
$langBucket[$language['language']] = $language['language'];
}
}
}
}
// set how many component use this string
$componentCounter = '';
if (ComponentbuilderHelper::checkJson($item->components))
{
$item->components = json_decode($item->components, true);
}
if (ComponentbuilderHelper::checkArray($item->components))
{
$componentCounter = ' - <small>' . JText::_('COM_COMPONENTBUILDER_USED_IN') . ' ' . count($item->components) . '</small>';
}
// load the languages to the string
if (ComponentbuilderHelper::checkArray($langBucket))
{
$item->source = '<small><em>(' . implode(', ', $langBucket) . ')</em></small> ' . ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150) . $componentCounter;
}
else
{
$item->source = '<small><em>(' . JText::_('COM_COMPONENTBUILDER_NOTRANSLATION') . ')</em></small> ' . ComponentbuilderHelper::htmlEscape($item->source, 'UTF-8', true, 150) . $componentCounter;
}
}
}
// prep the lang strings for export
if (isset($_export) && $_export && ComponentbuilderHelper::checkArray($items))
{
@ -395,6 +323,8 @@ class ComponentbuilderModelLanguage_translations extends JModelList
{
// remove some values completely
unset($item->components);
unset($item->modules);
unset($item->plugins);
unset($item->params);
unset($item->published);
unset($item->created_by);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
ALTER TABLE `#__componentbuilder_joomla_module` ADD `target` TINYINT(1) NOT NULL DEFAULT 0 AFTER `system_name`;

View File

@ -0,0 +1,3 @@
ALTER TABLE `#__componentbuilder_language_translation` ADD `modules` TEXT NOT NULL AFTER `components`;
ALTER TABLE `#__componentbuilder_language_translation` ADD `plugins` TEXT NOT NULL AFTER `modules`;

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -101,6 +101,9 @@ $edit = "index.php?option=com_componentbuilder&view=joomla_modules&task=joomla_m
<?php endforeach; ?>
</div>
</td>
<td class="hidden-phone">
<?php echo JText::_($item->target); ?>
</td>
<td class="hidden-phone">
<?php echo $this->escape($item->description); ?>
</td>

View File

@ -14,5 +14,5 @@ defined('_JEXEC') or die('Restricted access');
?>
<tr>
<td colspan="6"><?php echo $this->pagination->getListFooter(); ?></td>
<td colspan="7"><?php echo $this->pagination->getListFooter(); ?></td>
</tr>

View File

@ -32,6 +32,9 @@ defined('_JEXEC') or die('Restricted access');
<th class="nowrap" >
<?php echo JHtml::_('grid.sort', 'COM_COMPONENTBUILDER_JOOMLA_MODULE_SYSTEM_NAME_LABEL', 'system_name', $this->listDirn, $this->listOrder); ?>
</th>
<th class="nowrap hidden-phone" >
<?php echo JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL'); ?>
</th>
<th class="nowrap hidden-phone" >
<?php echo JHtml::_('grid.sort', 'COM_COMPONENTBUILDER_JOOMLA_MODULE_DESCRIPTION_LABEL', 'description', $this->listDirn, $this->listOrder); ?>
</th>

View File

@ -185,6 +185,36 @@ class ComponentbuilderViewJoomla_modules extends JViewLegacy
JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text')
);
}
// Set Target Selection
$this->targetOptions = $this->getTheTargetSelections();
// We do some sanitation for Target filter
if (ComponentbuilderHelper::checkArray($this->targetOptions) &&
isset($this->targetOptions[0]->value) &&
!ComponentbuilderHelper::checkString($this->targetOptions[0]->value))
{
unset($this->targetOptions[0]);
}
// Only load Target filter if it has values
if (ComponentbuilderHelper::checkArray($this->targetOptions))
{
// Target Filter
JHtmlSidebar::addFilter(
'- Select '.JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL').' -',
'filter_target',
JHtml::_('select.options', $this->targetOptions, 'value', 'text', $this->state->get('filter.target'))
);
if ($this->canBatch && $this->canCreate && $this->canEdit)
{
// Target Batch Selection
JHtmlBatch_::addListSelection(
'- Keep Original '.JText::_('COM_COMPONENTBUILDER_JOOMLA_MODULE_TARGET_LABEL').' -',
'batch[target]',
JHtml::_('select.options', $this->targetOptions, 'value', 'text')
);
}
}
}
/**
@ -235,4 +265,40 @@ class ComponentbuilderViewJoomla_modules extends JViewLegacy
'a.id' => JText::_('JGRID_HEADING_ID')
);
}
protected function getTheTargetSelections()
{
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Select the text.
$query->select($db->quoteName('target'));
$query->from($db->quoteName('#__componentbuilder_joomla_module'));
$query->order($db->quoteName('target') . ' ASC');
// Reset the query using our newly populated query object.
$db->setQuery($query);
$results = $db->loadColumn();
if ($results)
{
// get model
$model = $this->getModel();
$results = array_unique($results);
$_filter = array();
foreach ($results as $target)
{
// Translate the target selection
$text = $model->selectionTranslation($target,'target');
// Now add the target and its text to the options array
$_filter[] = JHtml::_('select.option', $target, JText::_($text));
}
return $_filter;
}
return false;
}
}

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -61,7 +61,7 @@ $edit = "index.php?option=com_componentbuilder&view=language_translations&task=l
<?php endif; ?>
</td>
<td class="nowrap">
<div class="name">
<div>
<?php if ($canDo->get('language_translation.edit')): ?>
<a href="<?php echo $edit; ?>&id=<?php echo $item->id; ?>"><?php echo $item->source; ?></a>
<?php if ($item->checked_out): ?>
@ -70,6 +70,89 @@ $edit = "index.php?option=com_componentbuilder&view=language_translations&task=l
<?php else: ?>
<?php echo $item->source; ?>
<?php endif; ?>
<?php
$langBucket = array();
if (ComponentbuilderHelper::checkJson($item->translation))
{
$translations = json_decode($item->translation, true);
if (ComponentbuilderHelper::checkArray($translations))
{
foreach ($translations as $language)
{
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
{
$langBucket[$language['language']] = $language['language'];
}
}
}
}
// start how many usedin's
$counterUsedin = array();
// set how many components use this string
if (ComponentbuilderHelper::checkJson($item->components))
{
$item->components = json_decode($item->components, true);
}
if (($number = ComponentbuilderHelper::checkArray($item->components)) !== false)
{
if ($number == 1)
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_COMPONENT');
}
else
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_COMPONENTS');
}
}
// set how many modules use this string
if (ComponentbuilderHelper::checkJson($item->modules))
{
$item->modules = json_decode($item->modules, true);
}
if (($number = ComponentbuilderHelper::checkArray($item->modules)) !== false)
{
if ($number == 1)
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_MODULE');
}
else
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_MODULES');
}
}
// set how many plugins use this string
if (ComponentbuilderHelper::checkJson($item->plugins))
{
$item->plugins = json_decode($item->plugins, true);
}
if (($number = ComponentbuilderHelper::checkArray($item->plugins)) !== false)
{
if ($number == 1)
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_PLUGIN');
}
else
{
$counterUsedin[] = $number . ' ' . JText::_('COM_COMPONENTBUILDER_PLUGINS');
}
}
// build the numbers
$numbersUsedin = '';
if (ComponentbuilderHelper::checkArray($counterUsedin))
{
$numbersUsedin = '<br />' . JText::_('COM_COMPONENTBUILDER_USED_IN') . ' ' . implode('<br />', $counterUsedin);
}
// load the languages to the string
if (ComponentbuilderHelper::checkArray($langBucket))
{
echo '<br /><small>' . JText::_('COM_COMPONENTBUILDER_ALREADY_TRANSLATED_INTO') . ' <em>(' . implode(', ', $langBucket) . ')</em>' . $numbersUsedin . '</small>';
}
else
{
echo '<br /><small><em>(' . JText::_('COM_COMPONENTBUILDER_NOTRANSLATION') . ')</em>' . $numbersUsedin . '</small>';
}
?>
</div>
</td>
<td class="center">

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

View File

@ -75,8 +75,8 @@ if ($this->saveOrder)
$this->loadTemplate('batch_body')
); ?>
<?php endif; ?>
<input type="hidden" name="filter_order" value="" />
<input type="hidden" name="filter_order_Dir" value="" />
<input type="hidden" name="filter_order" value="<?php echo $this->listOrder; ?>" />
<input type="hidden" name="filter_order_Dir" value="<?php echo $this->listDirn; ?>" />
<input type="hidden" name="boxchecked" value="0" />
</div>
<?php endif; ?>

Some files were not shown because too many files have changed in this diff Show More