Index: sites/all/modules/blocktheme/blocktheme.module =================================================================== --- sites/all/modules/blocktheme/blocktheme.module (revision 2075) +++ sites/all/modules/blocktheme/blocktheme.module (working copy) @@ -1,7 +1,16 @@ t('Block Theme'), 'description' => t('Allows the admin to define re-usable block templates that can be configured from block config screen'), @@ -13,6 +22,9 @@ } +/** + * Settigs page for blocktheme + */ function blocktheme_admin_settings() { $form = array(); $form['blocktheme_themes'] = array( @@ -25,6 +37,9 @@ } +/** + * hook_help() to give extra help on the settings pages + */ function blocktheme_help($path, $arg) { switch ($path) { case 'admin/help#blocktheme': @@ -36,22 +51,28 @@ } } -/* form for updating a block */ +/** + * form_alter hook to add the extra field to the Add Block form + */ function blocktheme_form_block_admin_configure_alter(&$form, &$form_state) { $module = $form['module']['#value']; $delta = $form['delta']['#value']; $var_name = $module .'-'. $delta; $blockthemes = variable_get('blocktheme_themes', ''); $_sets = explode("\n", $blockthemes); - $options[] = t('<-- None -->'); - - foreach ($_sets as $key => $value) { - $set = explode('|', $value); - $options[$set[0]] = $set[1]; + $options = array( + t('<-- None -->'), + ); + + if (count($_set)) { + foreach ($_sets as $key => $value) { + $set = explode('|', $value); + $options[trim($set[0])] = trim($set[1]); + } } $blocktheme = blocktheme_get(); - + $form['block_settings']['blocktheme'] = array( '#type' => 'select', '#weight' => -1, @@ -63,35 +84,46 @@ $form['#submit'][] = 'blocktheme_update'; } -/* form for adding a new block */ +/** + * form_alter hook to add the extra field to the Add Block form + */ function blocktheme_form_block_add_block_form_alter(&$form, &$form_state) { - $blockthemes = variable_get('blocktheme_themes', ''); + $blockthemes = trim(variable_get('blocktheme_themes', '')); $_sets = explode("\n", $blockthemes); - $options[] = t('<-- None -->'); - - foreach ($_sets as $key => $value) { - $set = explode('|', $value); - $options[$set[0]] = $set[1]; + $options = array( + t('<-- None -->'), + ); + + if (count($_set)) { + foreach ($_sets as $key => $value) { + $set = explode('|', $value); + $options[trim($set[0])] = trim($set[1]); + } } - + $blocktheme = blocktheme_get(); - + $form['block_settings']['blocktheme'] = array( '#type' => 'select', '#weight' => -1, '#title' => t('Custom Theme'), '#options' => $options, ); - + $form['#submit'][] = 'blocktheme_save'; } -function blocktheme_set($new_val) { +/** + * Save the blocktheme list + */ +function blocktheme_set($new_val) { variable_set('blocktheme', $new_val); } - +/** + * Get the blocktheme list + */ function blocktheme_get() { static $blocktheme; if (empty($blocktheme)) { @@ -101,44 +133,48 @@ return $blocktheme; } -/* update an existing block after form has been submitted*/ +/** + * update an existing block after form has been submitted + */ function blocktheme_update($form_id, &$form_state) { $var_name = $form_state['values']['module'] .'-'. $form_state['values']['delta']; $blocktheme = blocktheme_get(); - + if (!$form_state['values']['blocktheme']) { unset($blocktheme[$var_name]); } - else { + else { $blocktheme[$var_name] = $form_state['values']['blocktheme']; } blocktheme_set($blocktheme); } -/* save a new block after form was submitted */ +/** + * Save a new block after form was submitted + */ function blocktheme_save($form_id, &$form_state) { // first get the new delta value $result = db_query("SELECT delta FROM {blocks} WHERE bid = '%s'", db_last_insert_id('boxes', 'bid')); if ($delta_result = db_fetch_object($result)) { $delta = $delta_result->delta; $var_name = $form_state['values']['module'] .'-'. $delta; - + $blocktheme = blocktheme_get(); - + if (!$form_state['values']['blocktheme']) { unset($blocktheme[$var_name]); } - else { + else { $blocktheme[$var_name] = $form_state['values']['blocktheme']; } blocktheme_set($blocktheme); }; } -function blocktheme_get_theme(&$block) { - $blocktheme = blocktheme_get(); +function blocktheme_get_theme(&$block) { + $blocktheme = blocktheme_get(); $var_name = $block->module .'-'. $block->delta; if (isset($blocktheme[$var_name])) { return $blocktheme[$var_name]; @@ -150,13 +186,13 @@ // Added for downward compatability: // Remove blocktheme- prefix if present // Maybe use an update instead? - $len = strlen('blocktheme-'); + $len = drupal_strlen('blocktheme-'); if (strncmp($custom_theme, 'blocktheme-', $len) == 0) { - $custom_theme = substr($custom_theme, $len); + $custom_theme = drupal_substr($custom_theme, $len); } $vars['blocktheme'] = $custom_theme; - $vars['template_files'][] = 'blocktheme-'. $custom_theme; + $vars['template_files'][] = 'blocktheme-'. $custom_theme; } -} +} //Is it better to unserialize a huge array, or to use a hacky string based namespace?