diff --git a/administrator/houseKeeping/1.4.6/tjVendorsColumn.php b/administrator/houseKeeping/1.4.6/tjVendorsColumn.php new file mode 100644 index 00000000..bb8df789 --- /dev/null +++ b/administrator/houseKeeping/1.4.6/tjVendorsColumn.php @@ -0,0 +1,115 @@ + + * @copyright Copyright (c) 2009-2021 TechJoomla. All rights reserved. + * @license GNU General Public License version 2 or later. + */ + +// No direct access +defined('_JEXEC') or die('Restricted access'); + +use Joomla\CMS\Table\Table; + +/** + * Migration file for TJ-Fields + * + * @since 1.4.6 + */ +class TjHouseKeepingTjVendorsColumn extends TjModelHouseKeeping +{ + public $title = "Country, Region, and City table fix for com_tjvendors"; + + public $description = "Add com_tjvendors column in Country, Region, and City table"; + + /** + * Add com_tjvendors column in Country, Region, and City table if not exists + * + * @return void + * + * @since 1.0 + */ + public function migrate() + { + $result = array(); + + try + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true); + $query = "SHOW COLUMNS FROM `#__tj_city`"; + $db->setQuery($query); + $columns = $db->loadAssoclist(); + + $columns = array_column($columns, "Field"); + + if (!in_array('com_tjvendors', $columns)) + { + $query = "ALTER TABLE `#__tj_city` ADD COLUMN `com_tjvendors` tinyint(1) NOT NULL DEFAULT '1'"; + $db->setQuery($query); + + if (!$db->execute()) + { + $result['status'] = false; + $result['message'] = $db->getErrorMsg(); + + return $result; + } + } + + $query = $db->getQuery(true); + $query = "SHOW COLUMNS FROM `#__tj_region`"; + $db->setQuery($query); + $columns = $db->loadobjectlist(); + + $columns = array_column($columns, "Field"); + + if (!in_array('com_tjvendors', $columns)) + { + $query = "ALTER TABLE `#__tj_region` ADD COLUMN `com_tjvendors` tinyint(1) NOT NULL DEFAULT '1'"; + $db->setQuery($query); + + if (!$db->execute()) + { + $result['status'] = false; + $result['message'] = $db->getErrorMsg(); + + return $result; + } + } + + $query = $db->getQuery(true); + $query = "SHOW COLUMNS FROM `#__tj_country`"; + $db->setQuery($query); + $columns = $db->loadobjectlist(); + + $columns = array_column($columns, "Field"); + + if (!in_array('com_tjvendors', $columns)) + { + $query = "ALTER TABLE `#__tj_country` ADD COLUMN `com_tjvendors` tinyint(1) NOT NULL DEFAULT '1'"; + $db->setQuery($query); + + if (!$db->execute()) + { + $result['status'] = false; + $result['message'] = $db->getErrorMsg(); + + return $result; + } + } + + $result['status'] = true; + $result['message'] = "Migration successful"; + } + catch (Exception $e) + { + $result['err_code'] = ''; + $result['status'] = false; + $result['message'] = $e->getMessage(); + } + + return $result; + } +} diff --git a/site/helpers/tjfields.php b/site/helpers/tjfields.php index 30fbfd91..49ba1bb3 100644 --- a/site/helpers/tjfields.php +++ b/site/helpers/tjfields.php @@ -62,7 +62,7 @@ public function FetchDatavalue($data) $query->join('INNER', $db->qn('#__tjfields_fields', 'f') . ' ON (' . $db->qn('f.id') . ' = ' . $db->qn('fv.field_id') . ')'); - $query->where('fv.content_id=' . $content_id); + $query->where('fv.content_id=' . (int) $content_id); $query->where('fv.client="' . $client . '" ' . $query_user_string); $query->where('f.state=' . $db->quote("1")); $db->setQuery($query); @@ -75,6 +75,12 @@ public function FetchDatavalue($data) { $fieldParams = json_decode($data->params); $multipleValueField = (isset($fieldParams->multiple) && !empty($fieldParams->multiple)) ? 1 : 0; + + // Initialize $fieldDataValue[$data->field_id] if needed + if (!isset($fieldDataValue[$data->field_id])) + { + $fieldDataValue[$data->field_id] = new stdclass; + } if ($data->type == "radio" || $data->type == "single_select") { @@ -89,7 +95,7 @@ public function FetchDatavalue($data) } else { - $fieldDataValue[$data->field_id] = new stdclass; + $fieldDataValue[$data->field_id]->value = $data->value; $fieldDataValue[$data->field_id]->field_id = $data->field_id; }