Calendar modul egyedi táblából
Sziasztok!
Már napok óta küzdök egy problémával. Egy saját táblában tárolt adatokat szeretnék megjeleníteni a calendar modullal.
Így néz ki az adatbázis tábla:
`pid` int(11) NOT NULL AUTO_INCREMENT, `date_argument` int(11) NOT NULL, `pdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `roomtype` int(10) NOT NULL, `priceadult` int(10) DEFAULT NULL, `pricechildren` int(10) DEFAULT NULL, PRIMARY KEY (`pid`)
a hotelbooking.module fájl tartalma:
function hotelbooking_date_api_fields($field) { $values = array( 'sql_type' => DATE_UNIX, 'tz_handling' => 'site', 'timezone_field' => '', 'offset_field' => '', 'related_fields' => array('bookprices.pdate','bookprices.date_argument'), 'granularity' => array('year', 'month', 'day', 'hour', 'minute', 'second'), ); switch ($field) { case 'bookprices.pdate': case 'bookprices.date_argument': return $values; } } function hotelbooking_views_api() { return array( 'api' => 2, 'path' => drupal_get_path('module', 'hotelbooking')."/includes", ); }
A hotelbooking.views.inc fájl tartalma:
function hotelbooking_views_data() { $data = array(); $data['bookprices']['table']['group'] = t(' Room Prices'); $data['bookprices']['table']['base'] = array( 'field' => 'pid', 'title' => t('Prices'), 'help' => t("Szoba árak(node_prce)"), ); $data['bookprices']['date_argument'] = array( 'group' => t('Price Date'), 'title' => t('PPPrice Date'), 'help' => t('Filter any Views date field by a date argument'), 'field' => array( 'handler' => 'views_handler_field_date', 'click sortable' => TRUE, ), 'argument' => array( 'handler' => 'date_api_argument_handler', //'handler' => 'views_handler_argument_date', 'empty name field' => t('Undated'), ), ); $data['bookprices']['pdate'] = array( 'group' => t('Date'), 'title' => t('PPrice Date'), 'help' => t('Filter any Views date field by a date argument'), 'argument' => array( 'handler' => 'date_api_argument_handler', //'handler' => 'views_handler_argument_date', 'empty name field' => t('Undated'), ), 'field' => array( 'handler' => 'views_handler_field_date', 'click sortable' => TRUE, ), 'filter' => array( 'handler' => 'views_handler_filter_date', ), 'sort' => array( 'handler' => 'views_handler_sort_date', ), 'base' => 'bookprices', ); $data['bookprices']['pricechildren'] = array( 'title' => t('Price for Childern'), 'help' => t('Price for adults.'), 'field' => array( 'handler' => 'views_handler_field_numeric', 'click sortable' => TRUE, ), 'filter' => array( 'handler' => 'views_handler_filter_numeric', ), 'sort' => array( 'handler' => 'views_handler_sort', ), ); $data['bookprices']['priceadult'] = array( 'title' => t('Price for Adult'), 'help' => t('Price for Adult.'), 'field' => array( 'handler' => 'views_handler_field_numeric', 'click sortable' => TRUE, ), 'filter' => array( 'handler' => 'views_handler_filter_numeric', ), 'sort' => array( 'handler' => 'views_handler_sort', ), ); $data['roomtypes']['roomtype'] = array( 'title' => t('Type of room'), 'help' => t('Type of room.'), 'field' => array( 'handler' => 'views_handler_field_string', 'click sortable' => TRUE, ), 'filter' => array( 'handler' => 'views_handler_filter_string', ), 'sort' => array( 'handler' => 'views_handler_sort', ), ); return $data; }
Az arguments résznél a dátum hozzáadása után a konfigurációs részben a Date field(s): mezők között ha minden igaz a hotelbooking_date_api_fields() függvény hatására meg kellene jelennie a pdate és a date_argument mezőknek. sajnos ez nem történik meg.
A nézetet a Prices view típusból hoztam létre. A tábla többi eleme rendesen megjelenik és használható.
Segítségeteket, előre is köszönöm.