本文整理汇总了PHP中Category::searchByName方法的典型用法代码示例。如果您正苦于以下问题:PHP Category::searchByName方法的具体用法?PHP Category::searchByName怎么用?PHP Category::searchByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Category
的用法示例。
在下文中一共展示了Category::searchByName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: searchCatalog
/**
* Search a specific string in the products and categories
*
* @params string $query String to find in the catalog
*/
public function searchCatalog($query)
{
global $cookie;
$this->_list['products'] = Product::searchByName((int) $cookie->id_lang, $query);
if (!empty($this->_list['products'])) {
for ($i = 0; $i < count($this->_list['products']); $i++) {
$this->_list['products'][$i]['nameh'] = str_ireplace($query, '<span class="highlight">' . Tools::htmlentitiesUTF8($query) . '</span>', $this->_list['products'][$i]['name']);
}
}
$this->_list['categories'] = Category::searchByName((int) $cookie->id_lang, $query);
}
示例2: searchCatalog
/**
* Search a specific string in the products and categories
*
* @params string $query String to find in the catalog
*/
public function searchCatalog($query)
{
global $cookie;
$products = false;
if (Validate::isCatalogName($query)) {
$this->_list['products'] = Product::searchByName(intval($cookie->id_lang), $query);
if (!empty($this->_list['products'])) {
for ($i = 0; $i < count($this->_list['products']); $i++) {
$this->_list['products'][$i]['nameh'] = str_ireplace($query, '<span class="highlight">' . $query . '</span>', $this->_list['products'][$i]['name']);
}
}
}
if (Validate::isCatalogName($query)) {
$this->_list['categories'] = Category::searchByName(intval($cookie->id_lang), $query);
}
}
示例3: searchCatalog
/**
* Search a specific string in the products and categories
*
* @params string $query String to find in the catalog
*/
public function searchCatalog()
{
$this->context = Context::getContext();
$this->_list['products'] = Product::searchByName($this->context->language->id, $this->query);
$this->_list['categories'] = Category::searchByName($this->context->language->id, $this->query);
}
示例4: searchByPath
/**
* Search with Pathes for categories
*
* @param int $id_lang Language ID
* @param string $path of category
* @param bool $object_to_create a category
* * @param bool $method_to_create a category
* @return array Corresponding categories
*/
public static function searchByPath($id_lang, $path, $object_to_create = false, $method_to_create = false)
{
$categories = explode('/', trim($path));
$category = $id_parent_category = false;
if (is_array($categories) && count($categories)) {
foreach ($categories as $category_name) {
if ($id_parent_category) {
$category = Category::searchByNameAndParentCategoryId($id_lang, $category_name, $id_parent_category);
} else {
$category = Category::searchByName($id_lang, $category_name, true, true);
}
if (!$category && $object_to_create && $method_to_create) {
call_user_func_array(array($object_to_create, $method_to_create), array($id_lang, $category_name, $id_parent_category));
$category = Category::searchByPath($id_lang, $category_name);
}
if (isset($category['id_category']) && $category['id_category']) {
$id_parent_category = (int) $category['id_category'];
}
}
}
return $category;
}
示例5: productImport
public function productImport()
{
global $cookie;
$this->receiveTab();
$handle = $this->openCsvFile();
$defaultLanguageId = (int) Configuration::get('PS_LANG_DEFAULT');
self::setLocale();
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, Tools::getValue('separator')); $current_line++) {
if (Tools::getValue('convert')) {
$line = $this->utf8_encode_array($line);
}
$info = self::getMaskedRow($line);
if (array_key_exists('id', $info) and (int) $info['id'] and Product::existsInDatabase((int) $info['id'], 'product')) {
$product = new Product((int) $info['id']);
$categoryData = Product::getProductCategories((int) $product->id);
foreach ($categoryData as $tmp) {
$product->category[] = $tmp;
}
} else {
$product = new Product();
}
self::setEntityDefaultValues($product);
self::array_walk($info, array('AdminImport', 'fillInfo'), $product);
if ((int) $product->id_tax_rules_group != 0) {
if (Validate::isLoadedObject(new TaxRulesGroup($product->id_tax_rules_group))) {
$product->tax_rate = TaxRulesGroup::getTaxesRate((int) $product->id_tax_rules_group, Configuration::get('PS_COUNTRY_DEFAULT'), 0, 0);
} else {
$this->_addProductWarning('id_tax_rules_group', $product->id_tax_rules_group, Tools::displayError('Invalid tax rule group ID, you first need a group with this ID.'));
}
}
if (isset($product->manufacturer) and is_numeric($product->manufacturer) and Manufacturer::manufacturerExists((int) $product->manufacturer)) {
$product->id_manufacturer = (int) $product->manufacturer;
} elseif (isset($product->manufacturer) and is_string($product->manufacturer) and !empty($product->manufacturer)) {
if ($manufacturer = Manufacturer::getIdByName($product->manufacturer)) {
$product->id_manufacturer = (int) $manufacturer;
} else {
$manufacturer = new Manufacturer();
$manufacturer->name = $product->manufacturer;
if (($fieldError = $manufacturer->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $manufacturer->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $manufacturer->add()) {
$product->id_manufacturer = (int) $manufacturer->id;
} else {
$this->_errors[] = $manufacturer->name . (isset($manufacturer->id) ? ' (' . $manufacturer->id . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
}
if (isset($product->supplier) and is_numeric($product->supplier) and Supplier::supplierExists((int) $product->supplier)) {
$product->id_supplier = (int) $product->supplier;
} elseif (isset($product->supplier) and is_string($product->supplier) and !empty($product->supplier)) {
if ($supplier = Supplier::getIdByName($product->supplier)) {
$product->id_supplier = (int) $supplier;
} else {
$supplier = new Supplier();
$supplier->name = $product->supplier;
if (($fieldError = $supplier->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $supplier->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $supplier->add()) {
$product->id_supplier = (int) $supplier->id;
} else {
$this->_errors[] = $supplier->name . (isset($supplier->id) ? ' (' . $supplier->id . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
}
if (isset($product->price_tex) and !isset($product->price_tin)) {
$product->price = $product->price_tex;
} elseif (isset($product->price_tin) and !isset($product->price_tex)) {
$product->price = $product->price_tin;
// If a tax is already included in price, withdraw it from price
if ($product->tax_rate) {
$product->price = (double) number_format($product->price / (1 + $product->tax_rate / 100), 6, '.', '');
}
} elseif (isset($product->price_tin) and isset($product->price_tex)) {
$product->price = $product->price_tex;
}
if (isset($product->category) and is_array($product->category) and sizeof($product->category)) {
$product->id_category = array();
// Reset default values array
foreach ($product->category as $value) {
if (is_numeric($value)) {
if (Category::categoryExists((int) $value)) {
$product->id_category[] = (int) $value;
} else {
$categoryToCreate = new Category();
$categoryToCreate->id = (int) $value;
$categoryToCreate->name = self::createMultiLangField($value);
$categoryToCreate->active = 1;
$categoryToCreate->id_parent = 1;
// Default parent is home for unknown category to create
if (($fieldError = $categoryToCreate->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $categoryToCreate->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $categoryToCreate->add()) {
$product->id_category[] = (int) $categoryToCreate->id;
} else {
$this->_errors[] = $categoryToCreate->name[$defaultLanguageId] . (isset($categoryToCreate->id) ? ' (' . $categoryToCreate->id . ')' : '') . ' ' . Tools::displayError('Cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
} elseif (is_string($value) and !empty($value)) {
$category = Category::searchByName($defaultLanguageId, $value, true);
if ($category['id_category']) {
$product->id_category[] = (int) $category['id_category'];
} else {
$categoryToCreate = new Category();
//.........这里部分代码省略.........
示例6: categoryImportOne
protected function categoryImportOne($info, $default_language_id, $id_lang, $force_ids, $regenerate, $shop_is_feature_active, &$cat_moved, $validateOnly = false)
{
$tab_categ = array(Configuration::get('PS_HOME_CATEGORY'), Configuration::get('PS_ROOT_CATEGORY'));
if (isset($info['id']) && in_array((int) $info['id'], $tab_categ)) {
$this->errors[] = Tools::displayError('The category ID must be unique. It can\'t be the same as the one for Root or Home category.');
return;
}
AdminImportController::setDefaultValues($info);
if ($force_ids && isset($info['id']) && (int) $info['id']) {
$category = new Category((int) $info['id']);
} else {
if (isset($info['id']) && (int) $info['id'] && Category::existsInDatabase((int) $info['id'], 'category')) {
$category = new Category((int) $info['id']);
} else {
$category = new Category();
}
}
AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $category);
// Parent category
if (isset($category->parent) && is_numeric($category->parent)) {
// Validation for parenting itself
if ($validateOnly && $category->parent == $category->id || isset($info['id']) && $category->parent == (int) $info['id']) {
$this->errors[] = sprintf(Tools::displayError('The category ID must be unique. It can\'t be the same as the one for the parent category (ID: %1$s).'), isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null');
return;
}
if (isset($cat_moved[$category->parent])) {
$category->parent = $cat_moved[$category->parent];
}
$category->id_parent = $category->parent;
} elseif (isset($category->parent) && is_string($category->parent)) {
// Validation for parenting itself
if ($validateOnly && isset($category->name) && $category->parent == $category->name) {
$this->errors[] = sprintf(Tools::displayError('A category can\'t be its own parent. You should rename it (current name: %1$s).'), $category->parent);
return;
}
$category_parent = Category::searchByName($id_lang, $category->parent, true);
if ($category_parent['id_category']) {
$category->id_parent = (int) $category_parent['id_category'];
$category->level_depth = (int) $category_parent['level_depth'] + 1;
} else {
$category_to_create = new Category();
$category_to_create->name = AdminImportController::createMultiLangField($category->parent);
$category_to_create->active = 1;
$category_link_rewrite = Tools::link_rewrite($category_to_create->name[$id_lang]);
$category_to_create->link_rewrite = AdminImportController::createMultiLangField($category_link_rewrite);
$category_to_create->id_parent = Configuration::get('PS_HOME_CATEGORY');
// Default parent is home for unknown category to create
if (($field_error = $category_to_create->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category_to_create->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && !$validateOnly && $category_to_create->add()) {
$category->id_parent = $category_to_create->id;
} else {
if (!$validateOnly) {
$this->errors[] = sprintf($this->trans('%1$s (ID: %2$s) cannot be saved', array(), 'Admin.Parameters.Notification'), $category_to_create->name[$id_lang], isset($category_to_create->id) && !empty($category_to_create->id) ? $category_to_create->id : 'null');
}
if ($field_error !== true || isset($lang_field_error) && $lang_field_error !== true) {
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
}
if (isset($category->link_rewrite) && !empty($category->link_rewrite[$default_language_id])) {
$valid_link = Validate::isLinkRewrite($category->link_rewrite[$default_language_id]);
} else {
$valid_link = false;
}
if (!$shop_is_feature_active) {
$category->id_shop_default = 1;
} else {
$category->id_shop_default = (int) Context::getContext()->shop->id;
}
$bak = $category->link_rewrite[$default_language_id];
if (isset($category->link_rewrite) && empty($category->link_rewrite[$default_language_id]) || !$valid_link) {
$category->link_rewrite = Tools::link_rewrite($category->name[$default_language_id]);
if ($category->link_rewrite == '') {
$category->link_rewrite = 'friendly-url-autogeneration-failed';
$this->warnings[] = sprintf($this->trans('URL rewriting failed to auto-generate a friendly URL for: %s', array(), 'Admin.Parameters.Notification'), $category->name[$default_language_id]);
}
$category->link_rewrite = AdminImportController::createMultiLangField($category->link_rewrite);
}
if (!$valid_link) {
$this->informations[] = sprintf($this->trans('Rewrite link for %1$s (ID %2$s): re-written as %3$s.', array(), 'Admin.Parameters.Notification'), $bak, isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null', $category->link_rewrite[$default_language_id]);
}
$res = false;
if (($field_error = $category->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && empty($this->errors)) {
$category_already_created = Category::searchByNameAndParentCategoryId($id_lang, $category->name[$id_lang], $category->id_parent);
// If category already in base, get id category back
if ($category_already_created['id_category']) {
$cat_moved[$category->id] = (int) $category_already_created['id_category'];
$category->id = (int) $category_already_created['id_category'];
if (Validate::isDate($category_already_created['date_add'])) {
$category->date_add = $category_already_created['date_add'];
}
}
if ($category->id && $category->id == $category->id_parent) {
$this->errors[] = sprintf($this->trans('A category cannot be its own parent. The parent category ID is either missing or unknown (ID: %1$s).', array(), 'Admin.Parameters.Notification'), isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null');
return;
}
/* No automatic nTree regeneration for import */
$category->doNotRegenerateNTree = true;
// If id category AND id category already in base, trying to update
$categories_home_root = array(Configuration::get('PS_ROOT_CATEGORY'), Configuration::get('PS_HOME_CATEGORY'));
//.........这里部分代码省略.........
示例7: Product
$prod = new Product((int) Tools::getValue('id'), false, $obj->getCurrentIdLang());
die($prod->name);
}
if (Tools::getValue('action') == 'categoryname') {
$obj = new Segmentation();
$cat = new Category((int) Tools::getValue('id'), $obj->getCurrentIdLang());
die($cat->name);
}
if (Tools::getValue('action') == 'brandname') {
$obj = new Segmentation();
$man = new Manufacturer((int) Tools::getValue('id'), $obj->getCurrentIdLang());
die($man->name);
}
if (Tools::getValue('action') == 'category') {
if (Tools::getValue('name') != '') {
$products = Category::searchByName(Configuration::get('PS_LANG_DEFAULT'), Tools::getValue('name'));
if ($products) {
$i = 0;
$return = '<ul id="plugproduct' . Tools::safeOutput(Tools::getValue('id')) . '">';
foreach ($products as $product) {
$name = str_replace("'", '’', $product['name']);
$name = str_replace('"', '\\"', $name);
if ($i % 2 == 0) {
$return .= '<li id="' . Tools::safeOutput($product['id_category']) . '" class="pair">' . Tools::safeOutput($name) . '</li>';
} else {
$return .= '<li id="' . Tools::safeOutput($product['id_category']) . '" class="impair">' . Tools::safeOutput($name) . '</li>';
}
$i++;
}
$return .= '</ul>';
}
示例8: productImport
//.........这里部分代码省略.........
if (isset($product->price_tex) and !isset($product->price_tin)) {
$product->price = $product->price_tex;
} elseif (isset($product->price_tin) and !isset($product->price_tex)) {
$product->price = $product->price_tin;
// If a tax is already included in price, withdraw it from price
if ($product->tax_rate) {
$product->price = floatval(number_format($product->price / (1 + $product->tax_rate / 100), 6));
}
} elseif (isset($product->price_tin) and isset($product->price_tex)) {
$product->price = $product->price_tex;
}
if (isset($product->category) and is_array($product->category) and sizeof($product->category)) {
$product->id_category = array();
// Reset default values array
foreach ($product->category as $value) {
if (is_numeric($value)) {
if (Category::categoryExists(intval($value))) {
$product->id_category[] = intval($value);
} else {
$categoryToCreate = new Category();
$categoryToCreate->id = intval($value);
$categoryToCreate->name = self::createMultiLangField($value);
$categoryToCreate->active = 1;
$categoryToCreate->id_parent = 1;
// Default parent is home for unknown category to create
if (($fieldError = $categoryToCreate->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $categoryToCreate->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $categoryToCreate->add()) {
$product->id_category[] = intval($categoryToCreate->id);
} else {
$this->_errors[] = $categoryToCreate->name[$defaultLanguageId] . (isset($categoryToCreate->id) ? ' (' . $categoryToCreate->id . ')' : '') . ' ' . Tools::displayError('cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
} elseif (is_string($value) and !empty($value)) {
$category = Category::searchByName($defaultLanguageId, $value, true);
if ($category['id_category']) {
$product->id_category[] = intval($category['id_category']);
} else {
$categoryToCreate = new Category();
$categoryToCreate->name = self::createMultiLangField($value);
$categoryToCreate->active = 1;
$categoryToCreate->id_parent = 1;
// Default parent is home for unknown category to create
if (($fieldError = $categoryToCreate->validateFields(UNFRIENDLY_ERROR, true)) === true and ($langFieldError = $categoryToCreate->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true and $categoryToCreate->add()) {
$product->id_category[] = intval($categoryToCreate->id);
} else {
$this->_errors[] = $categoryToCreate->name[$defaultLanguageId] . (isset($categoryToCreate->id) ? ' (' . $categoryToCreate->id . ')' : '') . ' ' . Tools::displayError('cannot be saved');
$this->_errors[] = ($fieldError !== true ? $fieldError : '') . ($langFieldError !== true ? $langFieldError : '') . mysql_error();
}
}
}
}
}
$product->id_category_default = isset($product->id_category[0]) ? intval($product->id_category[0]) : '';
$link_rewrite = is_array($product->link_rewrite) ? $product->link_rewrite[$defaultLanguageId] : '';
$valid_link = Validate::isLinkRewrite($link_rewrite);
$bak = $product->link_rewrite;
if (isset($product->link_rewrite[$defaultLanguageId]) and empty($product->link_rewrite[$defaultLanguageId]) or !$valid_link) {
$link_rewrite = Tools::link_rewrite($product->name[$defaultLanguageId]);
}
if (!$valid_link) {
$this->_warnings[] = Tools::displayError('Rewrited link for') . ' ' . $bak . (isset($info['id']) ? ' (ID ' . $info['id'] . ') ' : '') . ' ' . Tools::displayError('was re-written as') . ' ' . $link_rewrite;
}
$product->link_rewrite = self::createMultiLangField($link_rewrite);
$res = false;
$fieldError = $product->validateFields(UNFRIENDLY_ERROR, true);
$langFieldError = $product->validateFieldsLang(UNFRIENDLY_ERROR, true);
示例9: categoryImport
public function categoryImport()
{
$cat_moved = array();
$this->receiveTab();
$handle = $this->openCsvFile();
$default_language_id = (int) Configuration::get('PS_LANG_DEFAULT');
$id_lang = Language::getIdByIso(Tools::getValue('iso_lang'));
if (!Validate::isUnsignedId($id_lang)) {
$id_lang = $default_language_id;
}
AdminImportController::setLocale();
for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) {
if (Tools::getValue('convert')) {
$line = $this->utf8EncodeArray($line);
}
$info = AdminImportController::getMaskedRow($line);
$tab_categ = array(Configuration::get('PS_HOME_CATEGORY'), Configuration::get('PS_ROOT_CATEGORY'));
if (isset($info['id']) && in_array((int) $info['id'], $tab_categ)) {
$this->errors[] = Tools::displayError('The category ID cannot be the same as the Root category ID or the Home category ID.');
continue;
}
AdminImportController::setDefaultValues($info);
if (Tools::getValue('forceIDs') && isset($info['id']) && (int) $info['id']) {
$category = new Category((int) $info['id']);
} else {
if (isset($info['id']) && (int) $info['id'] && Category::existsInDatabase((int) $info['id'], 'category')) {
$category = new Category((int) $info['id']);
} else {
$category = new Category();
}
}
AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $category);
if (isset($category->parent) && is_numeric($category->parent)) {
if (isset($cat_moved[$category->parent])) {
$category->parent = $cat_moved[$category->parent];
}
$category->id_parent = $category->parent;
} elseif (isset($category->parent) && is_string($category->parent)) {
$category_parent = Category::searchByName($id_lang, $category->parent, true);
if ($category_parent['id_category']) {
$category->id_parent = (int) $category_parent['id_category'];
$category->level_depth = (int) $category_parent['level_depth'] + 1;
} else {
$category_to_create = new Category();
$category_to_create->name = AdminImportController::createMultiLangField($category->parent);
$category_to_create->active = 1;
$category_link_rewrite = Tools::link_rewrite($category_to_create->name[$id_lang]);
$category_to_create->link_rewrite = AdminImportController::createMultiLangField($category_link_rewrite);
$category_to_create->id_parent = Configuration::get('PS_HOME_CATEGORY');
// Default parent is home for unknown category to create
if (($field_error = $category_to_create->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category_to_create->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $category_to_create->add()) {
$category->id_parent = $category_to_create->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $category_to_create->name[$id_lang], isset($category_to_create->id) && !empty($category_to_create->id) ? $category_to_create->id : 'null');
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
if (isset($category->link_rewrite) && !empty($category->link_rewrite[$default_language_id])) {
$valid_link = Validate::isLinkRewrite($category->link_rewrite[$default_language_id]);
} else {
$valid_link = false;
}
if (!Shop::isFeatureActive()) {
$category->id_shop_default = 1;
} else {
$category->id_shop_default = (int) Context::getContext()->shop->id;
}
$bak = $category->link_rewrite[$default_language_id];
if (isset($category->link_rewrite) && empty($category->link_rewrite[$default_language_id]) || !$valid_link) {
$category->link_rewrite = Tools::link_rewrite($category->name[$default_language_id]);
if ($category->link_rewrite == '') {
$category->link_rewrite = 'friendly-url-autogeneration-failed';
$this->warnings[] = sprintf(Tools::displayError('URL rewriting failed to auto-generate a friendly URL for: %s'), $category->name[$default_language_id]);
}
$category->link_rewrite = AdminImportController::createMultiLangField($category->link_rewrite);
}
if (!$valid_link) {
$this->warnings[] = sprintf(Tools::displayError('Rewrite link for %1$s (ID: %2$s) was re-written as %3$s.'), $bak, isset($info['id']) && !empty($info['id']) ? $info['id'] : 'null', $category->link_rewrite[$default_language_id]);
}
$res = false;
if (($field_error = $category->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && empty($this->errors)) {
$category_already_created = Category::searchByNameAndParentCategoryId($id_lang, $category->name[$id_lang], $category->id_parent);
// If category already in base, get id category back
if ($category_already_created['id_category']) {
$cat_moved[$category->id] = (int) $category_already_created['id_category'];
$category->id = (int) $category_already_created['id_category'];
if (Validate::isDate($category_already_created['date_add'])) {
$category->date_add = $category_already_created['date_add'];
}
}
if ($category->id && $category->id == $category->id_parent) {
$this->errors[] = Tools::displayError('A category cannot be its own parent');
continue;
}
/* No automatic nTree regeneration for import */
$category->doNotRegenerateNTree = true;
// If id category AND id category already in base, trying to update
$categories_home_root = array(Configuration::get('PS_ROOT_CATEGORY'), Configuration::get('PS_HOME_CATEGORY'));
if ($category->id && $category->categoryExists($category->id) && !in_array($category->id, $categories_home_root)) {
//.........这里部分代码省略.........
示例10: productImport
//.........这里部分代码省略.........
$product->price = (double) number_format($product->price / (1 + $product->tax_rate / 100), 6, '.', '');
}
} else {
if (isset($product->price_tin) && isset($product->price_tex)) {
$product->price = $product->price_tex;
}
}
}
if (isset($product->category) && is_array($product->category) && count($product->category)) {
$product->id_category = array();
// Reset default values array
foreach ($product->category as $value) {
if (is_numeric($value)) {
if (Category::categoryExists((int) $value)) {
$product->id_category[] = (int) $value;
} else {
$category_to_create = new Category();
$category_to_create->id = (int) $value;
$category_to_create->name = AdminImportController::createMultiLangField($value);
$category_to_create->active = 1;
$category_to_create->id_parent = Configuration::get('PS_HOME_CATEGORY');
// Default parent is home for unknown category to create
$category_link_rewrite = Tools::link_rewrite($category_to_create->name[$default_language_id]);
$category_to_create->link_rewrite = AdminImportController::createMultiLangField($category_link_rewrite);
if (($field_error = $category_to_create->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category_to_create->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $category_to_create->add()) {
$product->id_category[] = (int) $category_to_create->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $category_to_create->name[$default_language_id], isset($category_to_create->id) ? $category_to_create->id : 'null');
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
} else {
if (is_string($value) && !empty($value)) {
$category = Category::searchByName($default_language_id, trim($value), true);
if ($category['id_category']) {
$product->id_category[] = (int) $category['id_category'];
} else {
$category_to_create = new Category();
if (!Shop::isFeatureActive()) {
$category_to_create->id_shop_default = 1;
} else {
$category_to_create->id_shop_default = (int) Context::getContext()->shop->id;
}
$category_to_create->name = AdminImportController::createMultiLangField(trim($value));
$category_to_create->active = 1;
$category_to_create->id_parent = (int) Configuration::get('PS_HOME_CATEGORY');
// Default parent is home for unknown category to create
$category_link_rewrite = Tools::link_rewrite($category_to_create->name[$default_language_id]);
$category_to_create->link_rewrite = AdminImportController::createMultiLangField($category_link_rewrite);
if (($field_error = $category_to_create->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $category_to_create->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true && $category_to_create->add()) {
$product->id_category[] = (int) $category_to_create->id;
} else {
$this->errors[] = sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $category_to_create->name[$default_language_id], isset($category_to_create->id) ? $category_to_create->id : 'null');
$this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : '') . Db::getInstance()->getMsgError();
}
}
}
}
}
}
$product->id_category_default = isset($product->id_category[0]) ? (int) $product->id_category[0] : '';
$link_rewrite = is_array($product->link_rewrite) && count($product->link_rewrite) ? trim($product->link_rewrite[$default_language_id]) : '';
$valid_link = Validate::isLinkRewrite($link_rewrite);
if (isset($product->link_rewrite[$default_language_id]) && empty($product->link_rewrite[$default_language_id]) || !$valid_link) {
$link_rewrite = Tools::link_rewrite($product->name[$default_language_id]);
if ($link_rewrite == '') {