= :tid AND visible = :visible ORDER BY weight ASC', array(':tid' => 0, ':visible' => 1)); while ($option = $res->fetchObject()) { $variants[$option->tid] = $option->name; } } } /** * Utility function to get a default biblio type * * @return int * The id of a default biblio type */ function _nfcbiblio_top_visible_type() { return db_query_range("SELECT tid FROM {biblio_types} WHERE visible = :visible AND tid >= :tid ORDER BY weight ASC", 0, 1, array(':visible' => 1, ':tid' => 0))->fetchField(); } /** * Implements hook_nodeformcols_pre_form_alter(). * * Implement this hook to tell nodeformcols what variant the form is before * any alterations to the form is made. * * @param array $form * The form. * @return void */ function nfcbiblio_nodeformcols_pre_form_alter(&$form) { if ($form['#node']->type == 'biblio') { if (!empty($form['biblio_type']['#value'])) { $form['#nodeformcols_variant'] = $form['biblio_type']['#value']; } } } /** * Implements hook_nodeformcols_base_form_alter(). * * Implement this hook if you want to alter the node creation form that * nodeformcols uses to construct the configuration interface before * nodeformcols reads field information from it. * * @param array $form * The programatically created node creation form. * @param string $variant * The variant of the form that's being configured. * @return void */ function nfcbiblio_nodeformcols_base_form_alter(&$form, $variant) { if ($form['#node']->type == 'biblio') { if ($variant == 'default') { $variant = _nfcbiblio_top_visible_type(); } $biblio_form_state = array(); $biblio_form_state['post']['biblio_type'] = $variant; foreach (biblio_form($form['#node'], $biblio_form_state) as $name => $def) { $form[$name] = $def; } } }