0) { // Set the default and path variables based on module settings $default_size = variable_get('gallery_filter_default_size', 150); $default_div_class = variable_get('gallery_filter_default_div_class', 'nowrap'); $default_album_frame = variable_get('gallery_filter_default_album_frame', ''); $default_item_frame = variable_get('gallery_filter_default_item_frame', ''); $default_block_type = variable_get('gallery_filter_default_block_type', 'recentImage'); $default_n_images = variable_get('gallery_filter_n_images', 1); $default_show = variable_get('gallery_filter_default_show', 'none'); $default_link_target = variable_get('gallery_filter_default_link_target', ''); if ($default_album_frame == 'none') { $default_album_frame = ''; } if ($default_item_frame == 'none') { $default_item_frame = ''; } // This will hold the list of frames used for images so we can add the CSS link(s) at the end $frame_list = array (); // This sets up the embedding list ($success, $ret) = _gallery_init(true); if (!$success) { $err_msg = t('Unable to initialize embedded Gallery. You need to configure your embedded Gallery.', array('@link' => url('admin/settings/gallery'))); gallery_error($err_msg, $ret, TRUE); return $text; } } foreach ($matches as $match) { // Pull out the arguments into the $args array $args = array (); preg_match_all("/(\w+)\=(\"[^\"]*\"|\S*)/", $match[3], $a, PREG_SET_ORDER); foreach ($a as $arg) { $args[strtolower($arg[1])] = $arg[2]; } // Set number of images to show $n_images = gallery_filter_attr_value($args['n'], GALLERY_FILTER_INTEGER); if ($n_images == 0) { // No size specified; use the default $n_images = $default_n_images; } // Set the block type $block_type = gallery_filter_attr_value($args['type'], GALLERY_FILTER_WORD); if (empty($block_type)) { // No block type specified; use the default $block_type = $default_block_type; } if ($n_images <= 1) $block_type = 'specificItem'; //so it shows something if n=1 and an album is selected // Set the size of the thumbnail $size = gallery_filter_attr_value($args['size'], GALLERY_FILTER_INTEGER); if ($size == 0) { // No size specified; use the default $size = $default_size; } // Set the exact max size of the thumbnail $exactsize = gallery_filter_attr_value($args['exactsize'], GALLERY_FILTER_INTEGER); // Set the class of the div $div_class = gallery_filter_attr_value($args['class'], GALLERY_FILTER_WORD); if (empty ($div_class)) { // No class specified; use the default $div_class = $default_div_class; } // Switch the class to g2image versions (adds consistency) switch ($div_class) { case 'left': $div_class = "g2image_float_left"; break; case 'right': $div_class = "g2image_float_right"; break; case 'center': case 'centre': $div_class = "g2image_centered"; break; case 'normal': $div_class = "g2image_normal"; break; } // Set the overriding, album, and item frames $frame = gallery_filter_attr_value($args['frame'], GALLERY_FILTER_WORD); $album_frame = gallery_filter_attr_value($args['aframe'], GALLERY_FILTER_WORD); $item_frame = gallery_filter_attr_value($args['iframe'], GALLERY_FILTER_WORD); if (empty ($frame)) { // No overriding frame given; check for album_frame and item_frame if (empty ($album_frame)) { // No album frame specified; use the default one $album_frame = $default_album_frame; } if (empty ($item_frame)) { // No item frame specified; use the default one $item_frame = $default_item_frame; } } else { // Overriding frame given; use it $album_frame = $frame; $item_frame = $frame; } // Add the requested frames to the array so we can get the CSS later. Don't worry about // dupes at this point; they will be filtered out later. array_push($frame_list, $frame); array_push($frame_list, $album_frame); array_push($frame_list, $item_frame); // This part actually fetches the image block. It uses the same paramaters as the code // found under "Image Block" in site admin in Gallery2. $show = $default_show; // Not customized yet: $link_target = $default_link_target; $param_blocks_array = array_fill(0, $n_images, $block_type); $params['itemId'] = $match[1]; $params['blocks'] = is_array($param_blocks_array) ? implode('|', $param_blocks_array) : ""; $param_show_array = $show; $params['show'] = is_array($param_show_array) ? implode('|', $param_show_array) : ""; $params['maxSize'] = $size; if ($exactsize > 0) { $params['exactSize'] = $exactsize; unset($params['maxSize']); } // Add frames and link target using g2_filter code from MichelleC $params['albumFrame'] = $album_frame; $params['itemFrame'] = $item_frame; $params['linkTarget'] = $link_target; $g2_head = array(); $block = array (); list ($ret, $content, $head) = GalleryEmbed::getImageBlock($params); if ($ret) { gallery_error(t('Unable to get Gallery image block'), $ret); return; } else { if ($content) { // Add a div around the table for styling if ($div_class != 'none') { $content = '
'.$content.'
'; } // This puts the image block HTML back into the rest of the text $text = str_replace($match[0], $content, $text); } if ($head) { $g2_head[] = $head; } } } // end of for loop through matches // If we had at least one match, finish up by adding the css. Unfortunately if there are multiple // images on a page this will get added multiple times. if (count($matches) > 0) { GalleryEmbed :: done(); if ($g2_head) { gallery_set_html_head(implode("\n", array_unique($g2_head))); } drupal_add_css(drupal_get_path('module', 'gallery') .'/gallery_filter.css', 'module', 'all'); } return $text . "
";; } ?>