12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /**
- * Implements hook_nodeformcols_variants_alter().
- *
- * Implement this hook to supply information about form variants that can be
- * configured.
- *
- * @param array $variants
- * The current variants of the form
- * @param string $type
- * The node type
- * @return void
- */
- function nfcbiblio_nodeformcols_variants_alter(&$variants, $type) {
- if ($type == 'biblio') {
- $res = db_query('SELECT tid, name
- FROM {biblio_types}
- WHERE tid >= :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;
- }
- }
- }
|