Всё получилось , спасибо за наводку , добавил две функции в контроллер и модель , пошаманил с js и всё получилось )
Только статусы отображаются наоборот , не name статуса а id , но это мелочи , спасибо ещё раз .
Взял за основу вид не от " Показывать в категориях " , а от " Производителя " , так полегче было .
У меня статусов over>>>>>>100000 (так надо)
Необходимо было как то сортировать это и сделать более удобным .
Если кому надо вот ответ, хотя вряд ли кому пригодиться ))
в файле шаблона
<div class="form-group">
<label class="col-sm-2 control-label" for="input-stock-status"><span data-toggle="tooltip" title="<?php echo $help_stock_status; ?>"><?php echo $entry_stock_status; ?></span></label>
<div class="col-sm-10">
<input type="text" name="stock_status" value="<?php echo $stock_status['name']; ?>" placeholder="<?php echo $entry_stock_status; ?>" id="input-stock-status" class="form-control" />
<input type="hidden" name="stock_status_id" value="<?php echo $stock_status_id; ?>" />
</div>
</div>
+ добавить код JS вниз файла шаблона
// Stock_status
$('input[name=\'stock_status\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=catalog/manufacturer/autocomplete_stock&token=<?php echo $token; ?>&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
json.unshift({
stock_status_id: 0,
name: '<?php echo $text_none; ?>'
});
response($.map(json, function(item) {
return {
label: item['name'],
value: item['stock_status_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'stock_status\']').val(item['label']);
$('input[name=\'stock_status_id\']').val(item['value']);
}
});
Добавить функцию в контроллер :
admin / controller / catalog / manufacturer.php (можно в любой , только изменить надо будет в js )
public function autocomplete_stock() {
$json = array();
if (isset($this->request->get['filter_name'])) {
$this->load->model('catalog/product');
$filter_data = array(
'filter_name' => $this->request->get['filter_name'],
'start' => 0,
'limit' => 5
);
$results = $this->model_catalog_product->getStockStatus($filter_data);
foreach ($results as $result) {
$json[] = array(
'stock_status_id' => $result['stock_status_id'],
'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8'))
);
}
}
Добавить функцию в модель :
admin/ model / catalog / product.php
public function getStockStatus($data = array()) {
$sql = "SELECT * FROM " . DB_PREFIX . "stock_status";
if (!empty($data['filter_name'])) {
$sql .= " WHERE name LIKE '" . $this->db->escape($data['filter_name']) . "%'";
}
$sort_data = array(
'name',
'sort_order'
);
if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
$sql .= " ORDER BY " . $data['sort'];
} else {
$sql .= " ORDER BY name";
}
if (isset($data['order']) && ($data['order'] == 'DESC')) {
$sql .= " DESC";
} else {
$sql .= " ASC";
}
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
}
if ($data['limit'] < 1) {
$data['limit'] = 20;
}
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
}
$query = $this->db->query($sql);
return $query->rows;
}