сделать views из ubercart + profile

Главные вкладки

Аватар пользователя abrakadobr abrakadobr 7 ноября 2010 в 17:03

Имеется магазин на drupal 6 + ubercart.
Хочу сделать несколько отчётов по состоянию магазина через views.
Пример полей отчёта по заказам:
1. Номер
2. ФИО заказчика (берётся из профиля пользователя)
3. Адрес (так же из профиля)
4. Заказ (товар - количество. без цены!)

ещё не очень сложно и похоже на один из стандартных отчётов друпала.
проблемы:
1. надо что бы отчёт был именно таким и красивой табличкой
2. это не единственный отчёт, другие совсем с уберкартовскими далеко
3. ФИО и адрес заказчика берутся из профиля, так как надо что бы их вводили один раз в качестве профильных при регистрации, а друпал уже к себе подтягивал для заказа.

не понимаю какой модуль использовать для профильного и какой связкой во вьювсах это предоставится
на данный момент попробывал связку Profile + Ubercart profile integration. С точки зрения работы мазагина - великолепная связка.
Но вот никак не могу подтянуть во Views-ах любые из полей одновременно для построения таблиц отчёта.

Кто что может посоветывать?
В идеале - на уже существующих решениях (ибо если бы хотелось программить - давно бы уже написал, но кодить жутко не охота)

Комментарии

Аватар пользователя vitg vitg 7 ноября 2010 в 18:10

"abrakadobr" wrote:
Profile + Ubercart profile integration

Не дадите ссылочку почитать, где взяли Ubercart profile integration? Гугление по этому модулю ничего полезного не дает.
Сорри, что нет ответа на указанную тему. Заранее спасибо.

Аватар пользователя Alex554 Alex554 9 ноября 2010 в 0:50

Пришлось мне сделать таблу в views, чтобы выводила заказы и ФИО из profile.
Нужно было в Views подружить Order и Profile.
Сам не ожидал, оказалось проще простого. Я тащусь от логичности и простоты Drupal.
Подключаем модуль uc_views и сам views
И тут пришлось дописать файл /sites/all/modules/views/modules/profile.views.inc

Все что надо было, это просто скопирнуть второй раз строчки, вот пишу итог:

/**
* Implementation of hook_views_data()
*/
function profile_views_data() {
// Define the base group of this table. Fields that don't
// have a group defined will go into this field by default.
$data['profile_values']['table']['group'] = t('Profile');

$data['profile_values']['table']['join'] = array(
'node' => array(
'left_table' => 'profile_values',
'left_field' => 'uid',
'field' => 'uid',
),
'users' => array(
'left_table' => 'profile_values',
'left_field' => 'uid',
'field' => 'uid',
),
// Вот это добавляем
'uc_order' => array(
'left_table' => 'profile_values',
'left_field' => 'uid',
'field' => 'uid',
),

);

$fields = profile_views_get_fields();
foreach($fields as $field) {
$table_name = 'profile_values_' . $field->name;
$data[$table_name] = array(
'table' => array(
'group' => t('Profile'),
'join' => array(
'node' => array(
'table' => 'profile_values',
'left_table' => 'users',
'left_field' => 'uid',
'field' => 'uid',
'extra' => array(array('field' => 'fid', 'value' => $field->fid)),
),
'users' => array(
'table' => 'profile_values',
'left_field' => 'uid',
'field' => 'uid',
'extra' => array(array('field' => 'fid', 'value' => $field->fid)),
),
// Вот это добавляем
'uc_order' => array(
'table' => 'profile_values',
'left_field' => 'uid',
'field' => 'uid',
'extra' => array(array('field' => 'fid', 'value' => $field->fid)),
),

),
),
);
// All fields in the table are named 'value'.
$data[$table_name]['value'] = profile_views_fetch_field($field);
}

return $data;
}
далее все без изменений

Это все. Тут даже из логики видно, что надо для такой задачи добавить эти строчки.
Успехов.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 9 ноября 2010 в 20:11

"abrakadobr" wrote:
модуль называется uc_profile - штука действительно приятная

Что делает этот модуль? Выводит на страницу чекаута поля из профиля, дальше что? Как он интегрирован с платёжным адресом или адресом доставки?

Аватар пользователя abrakadobr abrakadobr 10 ноября 2010 в 2:40

<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a> wrote:
"abrakadobr" wrote:
модуль называется uc_profile - штука действительно приятная

Что делает этот модуль? Выводит на страницу чекаута поля из профиля, дальше что? Как он интегрирован с платёжным адресом или адресом доставки?


как? - полностью интегрирован. Smile

Аватар пользователя Alex554 Alex554 10 ноября 2010 в 22:03

Я показал код, что надо изменить в /sites/all/modules/views/modules/profile.views.inc
чтобы в views на странице orders (ну заказов) получить возможность добавлять данные из профиля.

Аватар пользователя abrakadobr abrakadobr 11 ноября 2010 в 22:36

Alex554 wrote:
Я показал код, что надо изменить в /sites/all/modules/views/modules/profile.views.inc
чтобы в views на странице orders (ну заказов) получить возможность добавлять данные из профиля.

редактированно: прошу прощения, уйню тут написал в прошлый раз Smile
всё супер! Smile