Сегодня была задача вывести массив не по id, а по email, для этого отлично подходит php функция ksort(), чтобы ей воспользоваться необходимо выполнить sql запрос и вытащить из базы всех покупателей.
В этом плане преста не подвела и сразу есть готовая функция:
1 2 3 4 5 6 7 |
public static function getCustomers() { return Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT `id_customer`, `email`, `firstname`, `lastname` FROM `'._DB_PREFIX_.'customer` ORDER BY `id_customer` ASC'); } |
забираем все после return и добавляем куда нам нужно.
Получается, что-то вроде:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public function getContent() { $this->postProcess(); $output = ''; $output .= '<form action="" method="post"><fieldset><legend>'.$this->l('Add user').'</legend>'; $output .= '<label>'.$this->l('Select user:').' </label> <select name="id_customer">'; $customers = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT `id_customer`, `email`, `firstname`, `lastname` FROM `'._DB_PREFIX_.'customer` ORDER BY `email` ASC'); ksort($customers); $customer[$customer['email']]=$customer; foreach ($customers AS $customer) $output .= '<option value="'.(int)($customer['id_customer']).'"'.((Configuration::get('LEDIT_U') == $customer['id_customer']) ? ' selected="selected"' : '').'>'.$customer['email'].'</option>'; $output .= '</select>'; $output .= '<br /><br /><input type="submit" name="submit" value="'.$this->l('Save').'" style="margin-left: 200px;"/></fieldset></form>'; return $output; } |
Данный код был написан для модуля linkedit – редактор ссылок.
Успехов!
Коментарии0 новых