* @copyright 2015 PrestaShow.pl * @license http://PrestaShow.pl/license */ class PShow_Prestashop_Fields { /** * Get lang iso * * @return string */ public static function getLangIso() { $lang_iso = Tools::strtolower(Context::getContext()->language->iso_code); if (count(glob(_IMPORT_FIELDS_PATH_ . $lang_iso . '_product.ini')) == 0) { return 'en'; } return $lang_iso; } /** * Get fields available to import * * @param array $primary_config * @return array */ public static function getFields($primary_config) { $whatToGet = str_replace('data_', '', $primary_config['file_contains']); $lang_iso = self::getLangIso(); $ini_file = _IMPORT_FIELDS_PATH_ . $lang_iso . '_' . $whatToGet . '.ini'; $fields = PShow_Ini::read($ini_file); if ($whatToGet == 'combination' && (bool) Configuration::getGlobalValue('mod_combination_description')) { $fields['description'] = 'Description'; } if ($whatToGet == 'combination' && (bool) Configuration::getGlobalValue('pshowimporter_mod_combination_dimensions')) { $fields['width'] = 'Dimension - width'; $fields['height'] = 'Dimension - height'; $fields['depth'] = 'Dimension - depth'; } // advanced stack management if (($whatToGet == 'combination' || $whatToGet == 'product') && PShow_Addon::getInstance('ASM') && PShow_Addon::getInstance('ASM')->isEnabled()) { $fields['asm_warehouse_name'] = 'Warehouse - name'; } if ($primary_config['file_contains'] == 'data_combination') { $fields = array_merge($fields, self::getProductAttributes()); } if ($primary_config['file_contains'] == 'data_product') { $fields = array_merge($fields, self::getProductFeatures()); } self::sortFields($fields); return array($whatToGet => $fields); } /** * Sort assoc array * * @param array $array */ public static function sortFields(&$array) { asort($array); } /** * Get product features * * @return array */ public static function getProductFeatures() { $features = Feature::getFeatures(Context::getContext()->language->id); $result = array(); foreach ($features as $f) { $result['feature:' . $f['id_feature']] = 'Feature - pre-definied value <' . $f['name'] . '|id:' . $f['id_feature'] . '>'; } foreach ($features as $f) { $result['feature_custom:' . $f['id_feature']] = 'Feature - customized value <' . $f['name'] . '|id:' . $f['id_feature'] . '> [string]'; } return $result; } /** * Get product attributes * * @return array */ public static function getProductAttributes() { $attrs = AttributeGroup::getAttributesGroups(Context::getContext()->language->id); $result = array(); foreach ($attrs as $a) { $result['attribute:' . $a['id_attribute_group']] = 'Attribute: ' . $a['name'] . '|id:' . $a['id_attribute_group'] . ' <' . $a['group_type'] . '>'; } return $result; } }