Помогите изменить формы вывода клиентов в админке

weberus

Постоялец
Регистрация
30 Мар 2016
Сообщения
58
Реакции
21
День добрый.
Появилась необходимость добавить еще одну таблицу с значением группа в разделе управление клиентами.
Может кто реализовывал, прошу помочь, версия 1.7.
 
Последнее редактирование:
решение для 1.6:
controllers/admin/AdminCustomersController.php
$this->_join =
'LEFT JOIN '._DB_PREFIX_.'customer_group cg ON (a.id_customer = cg.id_customer)
LEFT JOIN '._DB_PREFIX_.'group_lang g ON (cg.id_group = g.id_group AND g.id_lang = '.(int)$this->context->language->id.')

LEFT JOIN '._DB_PREFIX_.'gender_lang gl ON (a.id_gender = gl.id_gender AND gl.id_lang = '.(int) $this->context->language->id.')';
и
'connect' => [
'title' => $this->l('Last visit'),
'type' => 'datetime',
'search' => false,
'havingFilter' => true,
],
'group_name' => [
'title' => $this->l('Group'),
'filter_key' => 'g!name',
],

]
);
добавить то что выделено
 
решение для 1.6:
controllers/admin/AdminCustomersController.php
$this->_join =
'LEFT JOIN '._DB_PREFIX_.'customer_group cg ON (a.id_customer = cg.id_customer)
LEFT JOIN '._DB_PREFIX_.'group_lang g ON (cg.id_group = g.id_group AND g.id_lang = '.(int)$this->context->language->id.')

LEFT JOIN '._DB_PREFIX_.'gender_lang gl ON (a.id_gender = gl.id_gender AND gl.id_lang = '.(int) $this->context->language->id.')';
и
'connect' => [
'title' => $this->l('Last visit'),
'type' => 'datetime',
'search' => false,
'havingFilter' => true,
],
'group_name' => [
'title' => $this->l('Group'),
'filter_key' => 'g!name',
],

]
);
добавить то что выделено


Hi you can put the file edit :ay:
 
Спасибо за ответ, ступил не указав версию, мне нужно под 1.7
 
Hi you can put the file edit :ay:
This is an override for thirtybees, I think 1.6 is fine too
Спасибо за ответ, ступил не указав версию, мне нужно под 1.7
1.7 даже не ставил поэтому тут не сильно помогу, посмотри файлы CustomerGridDefinitionFactory.php и CustomerQueryBuilder.php, но это не точно
 

Вложения

  • AdminCustomersController.php.zip
    2,3 KB · Просмотры: 3
Последнее редактирование:
  • Нравится
Реакции: zen1
У кого еще какие варианты?
 
Тут можно через прямую правку файлов CustomerQueryBuilder.php и CustomerGridDefinitionFactory.php - в первом определяешь SQL во втором столбец для вывода.
См. - Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Но лучше использовать модули (т.е. хуки), за пример взять - Для просмотра ссылки Войди или Зарегистрируйся
 
Тут можно через прямую правку файлов CustomerQueryBuilder.php и CustomerGridDefinitionFactory.php - в первом определяешь SQL во втором столбец для вывода.
См. - Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Но лучше использовать модули (т.е. хуки), за пример взять - Для просмотра ссылки Войди или Зарегистрируйся
В этом файле все понятно CustomerGridDefinitionFactory.php , а вот с запросом все ни как не получается вытянуть, help
 
проверить мне негде, но думаю как-то так:
Код:
    /**
     * [USER=314738]@param[/USER] SearchCriteriaInterface $searchCriteria
     *
     * [USER=273296]@Return[/USER] QueryBuilder
     */
    private function getCustomerQueryBuilder(SearchCriteriaInterface $searchCriteria)
    {
        $queryBuilder = $this->connection->createQueryBuilder()
            ->from($this->dbPrefix . 'customer', 'c')
            ->leftJoin(
                'c',
                $this->dbPrefix . 'customer_group',
                'cg',
                'c.id_customer = cg.id_customer'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'group_lang',
                'g',
                'cg.id_group = g.id_group AND g.id_lang = :context_lang_id'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'gender_lang',
                'gl',
                'c.id_gender = gl.id_gender AND gl.id_lang = :context_lang_id'
            )
 
Последнее редактирование модератором:
проверить мне негде, но думаю как-то так:
Код:
    /**
     * [USER=314738]@param[/USER] SearchCriteriaInterface $searchCriteria
     *
     * [USER=273296]@Return[/USER] QueryBuilder
     */
    private function getCustomerQueryBuilder(SearchCriteriaInterface $searchCriteria)
    {
        $queryBuilder = $this->connection->createQueryBuilder()
            ->from($this->dbPrefix . 'customer', 'c')
            ->leftJoin(
                'c',
                $this->dbPrefix . 'customer_group',
                'cg',
                'c.id_customer = cg.id_customer'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'group_lang',
                'g',
                'cg.id_group = g.id_group AND g.id_lang = :context_lang_id'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'gender_lang',
                'gl',
                'c.id_gender = gl.id_gender AND gl.id_lang = :context_lang_id'
            )
Чета все ни как сделал так
Код:
    private function getCustomerQueryBuilder(SearchCriteriaInterface $searchCriteria)
    {
        $queryBuilder = $this->connection->createQueryBuilder()
            ->from($this->dbPrefix . 'customer', 'c')
            ->leftJoin(
                'c',
                $this->dbPrefix . 'gender_lang',
                'gl',
                'c.id_gender = gl.id_gender AND gl.id_lang = :context_lang_id'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'shop',
                's',
                'c.id_shop = s.id_shop'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'customer_group',
                'cg',
                'c.id_customer = cg.id_customer'
            )
            ->leftJoin(
                'c',
                $this->dbPrefix . 'group_lang',
                'g',
                'cg.id_group = g.id_group AND g.id_lang = :context_lang_id'
            )           
            ->where('c.deleted = 0')
            ->andWhere('c.id_shop IN (:context_shop_ids)')
            ->setParameter('context_shop_ids', $this->contextShopIds, Connection::PARAM_INT_ARRAY)
            ->setParameter('context_lang_id', $this->contextLangId);

        $this->applyFilters($searchCriteria->getFilters(), $queryBuilder);

        return $queryBuilder;
    }
 
Назад
Сверху