wernerrenrew wrote:Nothing preventing users to use duplicate seo_urls or forgetting the seo url.
admin/model/catalog/product.php add functionadmin/controller/catalog/product.php inside private function validateForm() addCode: Select all
public function isSeoDuplicate ($keyword, $product_id) { $query = $this->db->query("SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE keyword='" . $keyword . "' AND query != 'product_id=" . $product_id . "'"); if (empty($query->row)) { return false; } else { return true; } }
inside private function getform()Code: Select all
if (isset($this->request->get['product_id']) && $this->model_catalog_product->isSeoDuplicate ($this->request->post['keyword'], $this->request->get['product_id'])) { $this->error['seo'] = $this->language->get('duplicate_keyword'); } if ($this->config->get('config_seo_url') && (utf8_strlen($this->request->post['keyword']) < 1)) { $this->error['seo_empty'] = $this->language->get('seo_empty'); }
admin/language/enlish/catalog product.phpCode: Select all
if (isset($this->error['seo'])) { $this->data['error_seo'] = $this->error['seo']; } else { $this->data['error_seo'] = ''; } if (isset($this->error['seo_empty'])) { $this->data['error_seo_empty'] = $this->error['seo_empty']; } else { $this->data['error_seo_empty'] = ''; }
Regards WernerCode: Select all
$_['duplicate_keyword'] = 'Warning: Duplicate SEO url!'; $_['seo_empty'] = 'Warning: SEO url required!';
Maybe change this too for SEO in admin/view/template/catalog/product_form.tpl so people can find it:
Change this:
Code: Select all
<td><?php echo $entry_keyword; ?></td>
<td><input type="text" name="keyword" value="<?php echo $keyword; ?>" />
</td>
Code: Select all
<td><span class="required">*</span> <?php echo $entry_keyword; ?></td>
<td><input type="text" name="keyword" value="<?php echo $keyword; ?>" />
<?php if ($error_seo_empty) { ?>
<span class="error"><?php echo $error_seo_empty; ?></span>
<?php } ?></td>