Имеется магазин на drupal 6 + ubercart.
Хочу сделать несколько отчётов по состоянию магазина через views.
Пример полей отчёта по заказам:
1. Номер
2. ФИО заказчика (берётся из профиля пользователя)
3. Адрес (так же из профиля)
4. Заказ (товар - количество. без цены!)
ещё не очень сложно и похоже на один из стандартных отчётов друпала.
проблемы:
1. надо что бы отчёт был именно таким и красивой табличкой
2. это не единственный отчёт, другие совсем с уберкартовскими далеко
3. ФИО и адрес заказчика берутся из профиля, так как надо что бы их вводили один раз в качестве профильных при регистрации, а друпал уже к себе подтягивал для заказа.
не понимаю какой модуль использовать для профильного и какой связкой во вьювсах это предоставится
на данный момент попробывал связку Profile + Ubercart profile integration. С точки зрения работы мазагина - великолепная связка.
Но вот никак не могу подтянуть во Views-ах любые из полей одновременно для построения таблиц отчёта.
Кто что может посоветывать?
В идеале - на уже существующих решениях (ибо если бы хотелось программить - давно бы уже написал, но кодить жутко не охота)
Комментарии
Не дадите ссылочку почитать, где взяли Ubercart profile integration? Гугление по этому модулю ничего полезного не дает.
Сорри, что нет ответа на указанную тему. Заранее спасибо.
модуль называется uc_profile - штука действительно приятная.
Пришлось мне сделать таблу в 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;
}
далее все без изменений
Это все. Тут даже из логики видно, что надо для такой задачи добавить эти строчки.
Успехов.
Спасибо, искал
Alex554, спасибо за спасение моей шкуры!
Что делает этот модуль? Выводит на страницу чекаута поля из профиля, дальше что? Как он интегрирован с платёжным адресом или адресом доставки?
как? - полностью интегрирован.
Чёта я не заметил, правда смотрел мельком
Я показал код, что надо изменить в /sites/all/modules/views/modules/profile.views.inc
чтобы в views на странице orders (ну заказов) получить возможность добавлять данные из профиля.
редактированно: прошу прощения, уйню тут написал в прошлый раз
всё супер!