function gallery_assist_assignments_form_submit in Gallery Assist 7
Process GA content types specific settings form submissions.
File
- ./
gallery_assist.admin.inc, line 191 - GA module administration forms.
Code
function gallery_assist_assignments_form_submit($form, &$form_state) {
// if (!preg_match('/^rgb/', $form_state['values']['thm_border_color'], $match)
// || !preg_match('/^#/', $form_state['values']['thm_border_color'], $match)) {
// form_set_error('thm_border_color', 'Please');
// }
$settings = variable_get("gallery_assist_{$form_state['values']['type']}_data", array());
$new = array();
$i = 0;
foreach ($form_state['values'] as $k => $v) {
if (array_key_exists($k, $settings)) {
$new[$k] = $v;
$i++;
}
}
variable_set("gallery_assist_{$form_state['values']['type']}_data", $new);
drupal_set_message('The new configuration was successfully saved. ' . $i . ' items has ben changed');
// Save assignment css file.
$type = $form_state['values']['type'];
// $settings['thm_border'] = 1;
// $settings['thm_border_color'] = '#000';
// $settings['thm_margin'] = 10;
// $settings['thm_padding'] = 20;
// $settings['page_container_float'] = 'none';
// $settings['icon_image_style'] = $form_state['values']['icon_image_style'];
// $settings['thumbnail_image_style'] = $form_state['values']['thumbnail_image_style'];
// $settings['preview_image_style'] = $form_state['values']['preview_image_style'];
$thm = array(
'style' => image_style_load($settings['thumbnail_image_style']),
);
$end = end($thm['style']['effects']);
$thm['width'] = $end['data']['width'];
$thm['height'] = $end['data']['height'];
$settings['thumbnail_size'] = $thm['width'] >= $thm['height'] ? $thm['width'] : $thm['height'];
$rows = ceil($settings['teaser_items_per_row'] * $settings['teaser_rows_per_page'] / $settings['teaser_items_per_row']);
$ct_width = ($settings['thm_border'] + $settings['thm_margin'] + $settings['thm_padding']) * 2 * 3 + $thm['width'] * $settings['teaser_items_per_row'];
$ct_height = ($settings['thm_border'] + $settings['thm_margin'] + $settings['thm_padding']) * 2 * 3 + $thm['width'] * $settings['page_items_per_row'];
$settings['ga_container_width'] = $ct_width;
$rows = ceil($settings['page_items_per_row'] * $settings['page_rows_per_page'] / $settings['page_items_per_row']);
$cp_width = ($settings['thm_border'] + $settings['thm_margin'] + $settings['thm_padding']) * 2 * 3 + $thm['width'] * $settings['page_items_per_row'];
$cp_height = ($settings['thm_border'] + $settings['thm_margin'] + $settings['thm_padding']) * 2 * 3 + $thm['width'] * $rows;
$classes = array(
'container_class' => '.gallery-container.' . $type,
);
// Create or replace the css file.
$css_path = variable_get('gallery_assist_directory', FALSE) . '/css';
$destination = $css_path . '/' . $type . '.gallery_assist.css';
// Float.
// Teaser view.
$settings['float_margin_value'] = '10px;';
if ($settings['teaser_container_float'] != 'none') {
$settings['t_float'] = "float:{$settings['teaser_container_float']};";
if ($settings['teaser_container_float'] == 'right') {
$settings['t_float_margin'] = 'margin-left:';
}
if ($settings['teaser_container_float'] == 'left') {
$settings['t_float_margin'] = 'margin-right:';
}
$settings['t_float_margin'] .= 0;
//$settings['float_margin_value'];
}
// Page view.
if ($settings['page_container_float'] != 'none') {
if ($settings['ga_page_float'] == 'right') {
$settings['p_float_margin'] = 'margin-left:';
}
if ($settings['page_container_float'] == 'left') {
$settings['p_float_margin'] = 'margin-right:';
}
$settings['p_float'] = "float:{$settings['page_container_float']};";
$settings['p_float'] .= $settings['p_float_margin'] . $settings['float_margin_value'];
}
$css = array();
$css[] = '/* CSS file for the content type ' . $type . ' assignment. */';
$css[] = $classes['container_class'] . '.teaser {
width:' . $ct_width . 'px;
height:' . $ct_height . 'px;
border:5px solid red;
}';
$css[] = $classes['container_class'] . '.full {
' . (isset($settings['p_float']) && $settings['p_float'] ? $settings['p_float'] : '') . 'width:' . $cp_width . 'px;
height:' . $cp_height . 'px;
border:5px solid green;
}';
$css[] = $classes['container_class'] . ' .ga-image-box{
float:left;
width:' . $thm['width'] . 'px;
height:' . $thm['height'] . 'px;
border:' . $settings['thm_border'] . 'px solid ' . $settings['thm_border_color'] . ';
margin:' . $settings['thm_margin'] . 'px;
padding:' . $settings['thm_padding'] . 'px;
text-align:center;
}';
$css[] = '.gallery-assist-pager-top, .gallery-assist-pager-bottom {
/*padding:0 ' . $settings['thm_padding'] . 'px;*/
width:' . ($cp_width + ($settings['thm_padding'] + $settings['thm_margin'] + 5) / 2) . 'px;
}';
$css[] = '';
$data = implode("\n", $css);
file_prepare_directory($css_path, 1);
file_save_data($data, $destination, FILE_EXISTS_REPLACE);
drupal_set_message(t('A CSS file for the content type @assignment has been created.', array(
'@assignment' => node_type_get_name($type),
)));
}