Fixed gh-120 that allows export of component with language translations
This commit is contained in:
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage ajax.php
|
||||
@ -1085,150 +1085,6 @@ class ComponentbuilderModelAjax extends JModelList
|
||||
}
|
||||
|
||||
// Used in language_translation
|
||||
protected $functionArray = array(
|
||||
'translation' => 'checkString',
|
||||
'language' => 'getLanguageName');
|
||||
|
||||
protected function checkString($header, $value)
|
||||
{
|
||||
return $value;
|
||||
}
|
||||
|
||||
protected function getLanguageName($header, $value)
|
||||
{
|
||||
if ($name = ComponentbuilderHelper::getVar($header, $value, 'langtag', 'name'))
|
||||
{
|
||||
return $name . ' (' . $value . ')';
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
protected function setAutoLangZero()
|
||||
{
|
||||
// set the headers
|
||||
$headers = array(
|
||||
'translation' => JText::_('COM_COMPONENTBUILDER_TRANSLATION'),
|
||||
'language' => JText::_('COM_COMPONENTBUILDER_LANGUAGE')
|
||||
);
|
||||
// loop the array
|
||||
foreach ($headers as $key => $lang)
|
||||
{
|
||||
$this->setLanguage($key,$lang);
|
||||
}
|
||||
}
|
||||
|
||||
protected $languageArray = array();
|
||||
|
||||
protected function setLanguage($key,$lang)
|
||||
{
|
||||
$this->languageArray[$key] = $lang;
|
||||
}
|
||||
|
||||
public function getLanguage()
|
||||
{
|
||||
// return the language string that were set
|
||||
return $this->languageArray;
|
||||
}
|
||||
|
||||
protected function autoLoader()
|
||||
{
|
||||
$functions = range(0,10);
|
||||
foreach ($functions as $function)
|
||||
{
|
||||
$function = 'setAutoLang'.ComponentbuilderHelper::safeString($function, 'f');
|
||||
if (method_exists($this, $function))
|
||||
{
|
||||
$this->{$function}();
|
||||
}
|
||||
}
|
||||
foreach ($functions as $function)
|
||||
{
|
||||
$function = 'setAutoFunc'.ComponentbuilderHelper::safeString($function, 'f');
|
||||
if (method_exists($this, $function))
|
||||
{
|
||||
$this->{$function}();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getBuildTable($idName, $oject)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkJson($oject) && ComponentbuilderHelper::checkString($idName))
|
||||
{
|
||||
$array = json_decode($oject, true);
|
||||
if (ComponentbuilderHelper::checkArray($array))
|
||||
{
|
||||
// make sure we run the autoloader to insure all is set
|
||||
$this->autoLoader();
|
||||
// set the target headers
|
||||
$targetHeaders = $this->getLanguage();
|
||||
// start table build
|
||||
$table = '<table id="table_'.$idName.'" class="uk-table" style="margin: 5px 0 20px;"><thead><tr>';
|
||||
$rows = array();
|
||||
foreach ($array as $header => $values)
|
||||
{
|
||||
if (ComponentbuilderHelper::checkArray($values))
|
||||
{
|
||||
$targetHeader = (isset($targetHeaders[$header])) ? $targetHeaders[$header] : ComponentbuilderHelper::safeString($header, 'W');
|
||||
$table .= '<th style="padding: 10px; text-align: center; border: 1px solid rgb(221, 221, 221);" scope="col">'.$targetHeader.'</th>';
|
||||
|
||||
foreach ($values as $nr => $value)
|
||||
{
|
||||
// set the value for the row
|
||||
$this->setRows($nr, $this->setValue($header, $value), $rows);
|
||||
}
|
||||
}
|
||||
}
|
||||
// close header start body
|
||||
$table .= '</tr></thead><tbody>';
|
||||
// add rows to table
|
||||
if (ComponentbuilderHelper::checkArray($rows))
|
||||
{
|
||||
foreach ($rows as $row)
|
||||
{
|
||||
$table .= '<tr>'.$row.'</tr>';
|
||||
}
|
||||
}
|
||||
// close the body and table
|
||||
$table .= '</tbody></table>';
|
||||
// return the table
|
||||
return $table;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function setValue($header, $value)
|
||||
{
|
||||
if (array_key_exists($header, $this->functionArray) && method_exists($this, $this->functionArray[$header]))
|
||||
{
|
||||
$value = $this->{$this->functionArray[$header]}($header, $value);
|
||||
}
|
||||
// if no value are set
|
||||
if (!ComponentbuilderHelper::checkString($value))
|
||||
{
|
||||
$value = '-';
|
||||
}
|
||||
// make total stand out
|
||||
if ('total' == $header)
|
||||
{
|
||||
$value = '<b>'.$value.'</b>';
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
protected function setRows($nr, $value, &$rows)
|
||||
{
|
||||
// build rows
|
||||
if (!isset($rows[$nr]))
|
||||
{
|
||||
$rows[$nr] = '<td style="padding: 10px; text-align: center; border: 1px solid rgb(221, 221, 221);">'.$value.'</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$rows[$nr] .= '<td style="padding: 10px; text-align: center; border: 1px solid rgb(221, 221, 221);">'.$value.'</td>';
|
||||
}
|
||||
}
|
||||
|
||||
protected $viewid = array();
|
||||
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 53 of this MVC
|
||||
@build 5th August, 2017
|
||||
@version @update number 55 of this MVC
|
||||
@build 13th September, 2017
|
||||
@created 1st February, 2017
|
||||
@package Component Builder
|
||||
@subpackage compiler.php
|
||||
@ -164,12 +164,12 @@ class ComponentbuilderModelCompiler extends JModelList
|
||||
return $db->loadObjectList();
|
||||
}
|
||||
|
||||
public function builder($version, $id, $backup, $git, $addPlaceholders, $debugLinenr)
|
||||
public function builder($version, $id, $backup, $repo, $addPlaceholders, $debugLinenr)
|
||||
{
|
||||
$set['joomlaVersion'] = $version;
|
||||
$set['componentId'] = $id;
|
||||
$set['addBackup'] = $backup;
|
||||
$set['addGit'] = $git;
|
||||
$set['addRepo'] = $repo;
|
||||
$set['addPlaceholders'] = $addPlaceholders;
|
||||
$set['debugLinenr'] = $debugLinenr;
|
||||
// start up Compiler
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage componentbuilder.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage adminviewfolderlist.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage adminviews.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage articles.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage component.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage components.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage customadminviews.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage customfilelist.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage customfolderlist.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage customgets.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage dbtables.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamicget.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage dynamicgets.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fields.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldsmulti.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage fieldtypes.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage lang.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage maingets.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage siteviewfolderlist.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage siteviews.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage snippets.php
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 366 of this MVC
|
||||
@build 7th September, 2017
|
||||
@version @update number 375 of this MVC
|
||||
@build 17th September, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.js
|
||||
|
@ -9,8 +9,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 2017
|
||||
@version @update number 43 of this MVC
|
||||
@build 16th September, 2017
|
||||
@created 3rd April, 2017
|
||||
@package Component Builder
|
||||
@subpackage language_translation.js
|
||||
@ -26,39 +26,9 @@
|
||||
|
||||
jQuery(document).ready(function($)
|
||||
{
|
||||
// build table of translations
|
||||
var translation = encodeURIComponent(jQuery('#jform_translation').val());
|
||||
if (translation) {
|
||||
getBuildTable(translation,'jform_translation');
|
||||
}
|
||||
// set button to add more languages
|
||||
addButton('language','components');
|
||||
});
|
||||
|
||||
function getBuildTable_server(string, idName){
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getBuildTable&format=json&vdm="+vastDevMod);
|
||||
if(token.length > 0 && string.length > 0 && idName.length > 0){
|
||||
var request = 'token='+token+'&idName='+idName+'&object='+string;
|
||||
}
|
||||
return jQuery.ajax({
|
||||
type: 'GET',
|
||||
url: getUrl,
|
||||
dataType: 'jsonp',
|
||||
data: request,
|
||||
jsonp: 'callback'
|
||||
});
|
||||
}
|
||||
function getBuildTable(string, idName){
|
||||
getBuildTable_server(string, idName).done(function(result) {
|
||||
jQuery('#table_'+idName).remove();
|
||||
if(result){
|
||||
addData(result, '#'+idName);
|
||||
}
|
||||
})
|
||||
}
|
||||
function addData(result, where){
|
||||
jQuery(where).closest('.control-group').parent().append(result);
|
||||
}
|
||||
function addButton_server(type){
|
||||
var getUrl = JRouter("index.php?option=com_componentbuilder&task=ajax.getButton&format=json&vdm="+vastDevMod);
|
||||
if(token.length > 0 && type.length > 0){
|
||||
|
@ -104,44 +104,41 @@
|
||||
readonly="true"
|
||||
disabled="true"
|
||||
/>
|
||||
<!-- Translation Field. Type: Repeatable. (joomla) -->
|
||||
<!-- Translation Field. Type: Subform. (joomla) -->
|
||||
<field
|
||||
type="repeatable"
|
||||
type="subform"
|
||||
name="translation"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_LABEL"
|
||||
layout="joomla.form.field.subform.repeatable-table"
|
||||
multiple="true"
|
||||
description="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_DESCRIPTION"
|
||||
id="translation"
|
||||
class="translations"
|
||||
select="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_SELECT"
|
||||
icon="list"
|
||||
maximum="50">
|
||||
<fields name="translation_fields" label="">
|
||||
<fieldset hidden="true" name="translation_modal" repeat="true">
|
||||
<!-- Translation Field. Type: Textarea. (joomla) -->
|
||||
<field
|
||||
type="textarea"
|
||||
name="translation"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_LABEL"
|
||||
rows="4"
|
||||
cols="5"
|
||||
class="text_area span12"
|
||||
filter="STRING"
|
||||
hint="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_HINT"
|
||||
required="false"
|
||||
/>
|
||||
<!-- Language Field. Type: Lang. (custom) -->
|
||||
<field
|
||||
type="lang"
|
||||
name="language"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE_LABEL"
|
||||
class="list_class"
|
||||
multiple="false"
|
||||
default="0"
|
||||
required="false"
|
||||
button="false"
|
||||
/>
|
||||
</fieldset>
|
||||
</fields>
|
||||
maximum="200">
|
||||
<form hidden="true" name="list_translation_modal" repeat="true">
|
||||
<!-- Translation Field. Type: Textarea. (joomla) -->
|
||||
<field
|
||||
type="textarea"
|
||||
name="translation"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_LABEL"
|
||||
rows="4"
|
||||
cols="20"
|
||||
class="text_area translation_text_area"
|
||||
filter="STRING"
|
||||
hint="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_TRANSLATION_HINT"
|
||||
required="false"
|
||||
/>
|
||||
<!-- Language Field. Type: Lang. (custom) -->
|
||||
<field
|
||||
type="lang"
|
||||
name="language"
|
||||
label="COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_LANGUAGE_LABEL"
|
||||
class="list_class"
|
||||
multiple="false"
|
||||
default="0"
|
||||
required="false"
|
||||
button="false"
|
||||
/>
|
||||
</form>
|
||||
</field>
|
||||
<!-- Components Field. Type: Components. (custom) -->
|
||||
<field
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage import.php
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.5.4
|
||||
@build 13th September, 2017
|
||||
@version 2.5.5
|
||||
@build 17th September, 2017
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage import_joomla_components.php
|
||||
@ -1487,23 +1487,68 @@ class ComponentbuilderModelImport_joomla_components extends JModelLegacy
|
||||
}
|
||||
// merge the translations where needed
|
||||
if (isset($item->translation) && isset($item->localTranslation)
|
||||
&& ComponentbuilderHelper::checkJson($item->translation)
|
||||
&& ComponentbuilderHelper::checkJson($item->translation)
|
||||
&& ComponentbuilderHelper::checkJson($item->localTranslation))
|
||||
{
|
||||
$translations = json_decode($item->translation, true);
|
||||
$localTranslations = json_decode($item->localTranslation, true);
|
||||
foreach ($localTranslations['translation'] as $nr => $value)
|
||||
$newTranslations = json_decode($item->translation, true);
|
||||
$localTranslations = json_decode($item->localTranslation, true); // always the new format
|
||||
$translations = array();
|
||||
$pointer = 0;
|
||||
$checker = array();
|
||||
// okay we have the old format lets merge on that basis
|
||||
if (isset($newTranslations['translation']))
|
||||
{
|
||||
// only keep old translation if the new does not have this translation & language
|
||||
if (!in_array($value, $translations['translation']) && !in_array($localTranslations['language'][$nr], $translations['language']))
|
||||
foreach ($localTranslations as $value)
|
||||
{
|
||||
$translations['translation'][] = $value;
|
||||
$translations['language'][] = $localTranslations['language'][$nr];
|
||||
// only keep old translation if the new does not have this translation & language
|
||||
if (!in_array($value['language'], $newTranslations['language']))
|
||||
{
|
||||
$translations['translation' . $pointer] = array('translation' => $value['translation'], 'language' => $value['language']);
|
||||
$pointer++;
|
||||
}
|
||||
}
|
||||
foreach ($newTranslations['translation'] as $nr => $newTrans)
|
||||
{
|
||||
// now convert the new translation array
|
||||
$translations['translation' . $pointer] = array('translation' => $newTrans, 'language' => $newTranslations['language'][$nr]);
|
||||
$pointer++;
|
||||
}
|
||||
}
|
||||
$item->translation = json_encode($translations);
|
||||
// okay this is the new format lets merge on that basis
|
||||
elseif (ComponentbuilderHelper::checkArray($newTranslations))
|
||||
{
|
||||
$translations = $newTranslations;
|
||||
$pointer = count($translations);
|
||||
foreach ($localTranslations as $value)
|
||||
{
|
||||
$keepLocal = true;
|
||||
foreach ($newTranslations as $newValue)
|
||||
{
|
||||
// only keep old translation if the new does not have this translation & language
|
||||
if ($value['language'] === $newValue['language'])
|
||||
{
|
||||
$keepLocal = false;
|
||||
}
|
||||
}
|
||||
if ($keepLocal)
|
||||
{
|
||||
$translations['translation' . $pointer] = array('translation' => $value['translation'], 'language' => $value['language']);
|
||||
$pointer++;
|
||||
}
|
||||
}
|
||||
}
|
||||
// okay seem to only have local translations
|
||||
elseif (ComponentbuilderHelper::checkArray($localTranslations))
|
||||
{
|
||||
$translations = $localTranslations;
|
||||
}
|
||||
// only update if we have translations
|
||||
if (ComponentbuilderHelper::checkArray($translations))
|
||||
{
|
||||
$item->translation = json_encode($translations);
|
||||
}
|
||||
}
|
||||
elseif (isset($item->localTranslation) && ComponentbuilderHelper::checkJson($item->localTranslation))
|
||||
elseif (isset($item->localTranslation) && ComponentbuilderHelper::checkJson($item->localTranslation))
|
||||
{
|
||||
$item->translation = $item->localTranslation;
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 366 of this MVC
|
||||
@build 7th September, 2017
|
||||
@version @update number 375 of this MVC
|
||||
@build 17th September, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_component.php
|
||||
@ -598,11 +598,15 @@ class ComponentbuilderModelJoomla_component extends JModelAdmin
|
||||
if (ComponentbuilderHelper::checkJson($item->translation))
|
||||
{
|
||||
$translations = json_decode($item->translation, true);
|
||||
if (ComponentbuilderHelper::checkArray($translations) && isset($translations['language']) && ComponentbuilderHelper::checkArray($translations['language']))
|
||||
if (ComponentbuilderHelper::checkArray($translations))
|
||||
{
|
||||
foreach ($translations['language'] as $language)
|
||||
foreach ($translations as $language)
|
||||
{
|
||||
$langBucket[$language] = $language;
|
||||
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
|
||||
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
|
||||
{
|
||||
$langBucket[$language['language']] = $language['language'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 366 of this MVC
|
||||
@build 7th September, 2017
|
||||
@version @update number 375 of this MVC
|
||||
@build 17th September, 2017
|
||||
@created 6th May, 2015
|
||||
@package Component Builder
|
||||
@subpackage joomla_components.php
|
||||
@ -530,6 +530,40 @@ class ComponentbuilderModelJoomla_components extends JModelList
|
||||
{
|
||||
$values = json_decode($values, true);
|
||||
}
|
||||
// check if the key is an array (targeting subform)
|
||||
if (ComponentbuilderHelper::checkArray($key) && isset($key['subform']) && ComponentbuilderHelper::checkArray($values))
|
||||
{
|
||||
$subform = $key['subform'];
|
||||
$key = $key['key'];
|
||||
$tmpBucket = array($key => array());
|
||||
foreach ($values as $value)
|
||||
{
|
||||
if (isset($value[$subform]))
|
||||
{
|
||||
if ('language' === $subform)
|
||||
{
|
||||
$tmpBucket[$key][] = (int) ComponentbuilderHelper::getVar('language', $value[$subform], 'langtag', 'id');
|
||||
}
|
||||
else
|
||||
{
|
||||
$tmpBucket[$key][] = $value[$subform];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ComponentbuilderHelper::checkArray($tmpBucket[$key]))
|
||||
{
|
||||
// now set the values back
|
||||
$values = $tmpBucket;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
elseif (ComponentbuilderHelper::checkArray($key))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// make sure we have an array
|
||||
if (('custom_code' !== $table && 'component' !== $key && 'custom_get' !== $key) && (!ComponentbuilderHelper::checkArray($values) || !isset($values[$key]) || !ComponentbuilderHelper::checkArray($values[$key])))
|
||||
{
|
||||
@ -1013,8 +1047,8 @@ class ComponentbuilderModelJoomla_components extends JModelList
|
||||
$this->smartExport['language_translation'][$item->id] = $item;
|
||||
// add languages
|
||||
if (isset($item->translation))
|
||||
{
|
||||
$this->setData('language', $item->translation, 'language');
|
||||
{
|
||||
$this->setData('language', $item->translation, array('key' => 'language', 'subform' => 'language'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 2017
|
||||
@version @update number 43 of this MVC
|
||||
@build 16th September, 2017
|
||||
@created 3rd April, 2017
|
||||
@package Component Builder
|
||||
@subpackage language_translation.php
|
||||
@ -100,6 +100,14 @@ class ComponentbuilderModelLanguage_translation extends JModelAdmin
|
||||
$item->metadata = $registry->toArray();
|
||||
}
|
||||
|
||||
if (!empty($item->translation))
|
||||
{
|
||||
// Convert the translation field to an array.
|
||||
$translation = new Registry;
|
||||
$translation->loadString($item->translation);
|
||||
$item->translation = $translation->toArray();
|
||||
}
|
||||
|
||||
if (!empty($item->components))
|
||||
{
|
||||
// JSON Decode components.
|
||||
@ -814,6 +822,19 @@ class ComponentbuilderModelLanguage_translation extends JModelAdmin
|
||||
$data['metadata'] = (string) $metadata;
|
||||
}
|
||||
|
||||
// Set the translation items to data.
|
||||
if (isset($data['translation']) && is_array($data['translation']))
|
||||
{
|
||||
$translation = new JRegistry;
|
||||
$translation->loadArray($data['translation']);
|
||||
$data['translation'] = (string) $translation;
|
||||
}
|
||||
elseif (!isset($data['translation']))
|
||||
{
|
||||
// Set the empty translation to data
|
||||
$data['translation'] = '';
|
||||
}
|
||||
|
||||
// Set the components string to JSON string.
|
||||
if (isset($data['components']))
|
||||
{
|
||||
|
@ -10,8 +10,8 @@
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version @update number 39 of this MVC
|
||||
@build 7th April, 2017
|
||||
@version @update number 43 of this MVC
|
||||
@build 16th September, 2017
|
||||
@created 3rd April, 2017
|
||||
@package Component Builder
|
||||
@subpackage language_translations.php
|
||||
@ -128,11 +128,15 @@ class ComponentbuilderModelLanguage_translations extends JModelList
|
||||
if (ComponentbuilderHelper::checkJson($item->translation))
|
||||
{
|
||||
$translations = json_decode($item->translation, true);
|
||||
if (ComponentbuilderHelper::checkArray($translations) && isset($translations['language']) && ComponentbuilderHelper::checkArray($translations['language']))
|
||||
if (ComponentbuilderHelper::checkArray($translations))
|
||||
{
|
||||
foreach ($translations['language'] as $language)
|
||||
foreach ($translations as $language)
|
||||
{
|
||||
$langBucket[$language] = $language;
|
||||
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
|
||||
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
|
||||
{
|
||||
$langBucket[$language['language']] = $language['language'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -310,11 +314,15 @@ class ComponentbuilderModelLanguage_translations extends JModelList
|
||||
if (ComponentbuilderHelper::checkJson($item->translation))
|
||||
{
|
||||
$translations = json_decode($item->translation, true);
|
||||
if (ComponentbuilderHelper::checkArray($translations) && isset($translations['language']) && ComponentbuilderHelper::checkArray($translations['language']))
|
||||
if (ComponentbuilderHelper::checkArray($translations))
|
||||
{
|
||||
foreach ($translations['language'] as $language)
|
||||
foreach ($translations as $language)
|
||||
{
|
||||
$langBucket[$language] = $language;
|
||||
if (isset($language['translation']) && ComponentbuilderHelper::checkString($language['translation'])
|
||||
&& isset($language['language']) && ComponentbuilderHelper::checkString($language['language']))
|
||||
{
|
||||
$langBucket[$language['language']] = $language['language'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user