Модуль управления, отображения таблиц БД

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

Аватар пользователя pvb-d pvb-d 22 мая 2008 в 1:16

Возникла необходимость ввода и показа информации ввиде таблиц.
Связка CCK+Views показалась слишком накладной (на каждую запись создавать ноду)
Подходит модуль Tablemanager, но не устраивает в нем хранение данных в одном поле (возможны тормоза на сравнимо большом кол-ве записей)

Родился данный модуль Tabledetail (в основе был интерфейс Tablemanager)
из возможностей
- создание таблиц, управление колонками
- типы значениий колонок: строка, целое, число, дата
- API для определения новых типов, например в модуле tabledetailadd определены: select, text, autonode
- определение стиля таблиц
* стиль table-: HTML table с классом CSS td-table-
* для примера в модуле tabledetail_ajaxtable определен стиль ajaxtable- на основе модуля ajaxtable
- фильтр tabledetail [td:table_id,pagination,admin_links,style]
- рендеринг в php-сниппете td_display(table_id,pagination,admin_links,style);
- разделение доступа к таблицам administer table, create/edit content

может кому пригодится
баги, пожелания и прочее готов принять

ВложениеРазмер
Иконка пакета tabledetail.zip21.81 КБ

Комментарии

Аватар пользователя pvb-d pvb-d 22 мая 2008 в 13:18

Пример можно здесь
коротко

Сделаем простой прайс-лист: нода - группа товаров
1. Создаем новую таблицу my_syte/node/add/tabledetail
- Задаем Наименование, описание, стиль, колво колонок - 4
- Далее описываем колонки
nid - autonode (должен быть установлен модуль tabledetail_add)
Артикул - int(целое)
Наименование - string(строка)
Цена - numeric(число)
2. Создаем ноду (напр. page) вставляем последовательность
[ td:1,10,TRUE] (должен быть включен Tabledetail filter my_site/admin/settings/filters)
1 - ид таблицы
10 - колво строк на страницу
TRUE - ссылки для редактирования таблицы

Управлять таблицами можно my_syte/admin/content/td,
содержимым таблиц непосредственно в нодах если есть разрешение для пользователя (my_site/admin/user/access)

Аватар пользователя d31m07y1988 d31m07y1988 22 мая 2008 в 19:42

Как то лишне.

Связка CCK+Views показалась слишком накладной (на каждую запись создавать ноду)

Вполне замечательн справлялась с этим. По крайней мере пример который был показан

Аватар пользователя saken saken 26 мая 2008 в 20:21

попробовал Ваш модуль. а чтобы из excel книгу в несколько десятков строк это по отдельности каждую строку нужно вносить или как-то одним разом можно?

Аватар пользователя Conan Conan 8 сентября 2008 в 12:19

А можно объяснить подробнее, что значит:
2. Создаем ноду (напр. page) вставляем последовательность
[ td:1,10,TRUE]
Как надо вставлять эту надпись, что бы таблица выводилась нормально?

Аватар пользователя pvb-d pvb-d 13 сентября 2008 в 10:18

"Conan" wrote:
Как надо вставлять эту надпись, что бы таблица выводилась нормально?

просто как текст содержимого страницы

трам там там чегото там [td:1,10,TRUE]

при выводе эта последовательность в скобках будет заменена фильтром Tabledetail filter на таблицу

Аватар пользователя Conan Conan 15 сентября 2008 в 10:00

Спасибо. Все получилось. Только при изменении страницы, где находится вывод таблицы и ее последующем сохранении выдает следующее (это на локальном компе, на сервер пока не ставил):

* warning: Illegal offset type in isset or empty in ...\www\sites\all\modules\tabledetail\tabledetail_fields.inc on line 135.
* warning: Illegal offset type in ...\www\sites\all\modules\tabledetail\tabledetail_fields.inc on line 157.
* warning: Illegal offset type in ...\www\sites\all\modules\tabledetail\tabledetail_fields.inc on line 159.

Но не смотря на это изменения сохраняются и все работает нормально.

Аватар пользователя dsp dsp 14 октября 2008 в 21:42

С помощью Вашего модуля возможно отображение таблиц напрямую из БД Друпала с использованием SQL?
Ставил этот модуль, включал AjaxTable, но не нашел каким образом можно выводить таблицы через AjaxTable (смотрел примеры к этому модулю - там вроде можно выводить таблицы из БД с SQL).

Аватар пользователя pvb-d pvb-d 15 октября 2008 в 20:07

Для AjaxTable нужно в настройках /admin/settings/td добавить в Table Styles: стиль ajaxtable (отображение AjaxTable по умолчанию) или ajaxtable-{name}, где {name} - имя стиля в контексте модуля AjaxTable
ну и соответственно этот стиль выбрать для отображения таблицы
или указать стиль в самой последовательности [td:{table_id},{pagination},{admin_links},ajaxtable]

Сторонние таблицы модуль не отображает