Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1]   Go Down

Author Topic: Eliminare finestra secondaria immagini  (Read 11977 times)

0 Members and 1 Guest are viewing this topic.

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Eliminare finestra secondaria immagini
« on: October 08, 2007, 02:51:42 pm »

Salve ho una domanda da fare, nella galleria quando si scorrono le immagini, si puo' cliccare sulla singola immagine e si apre una nuova finestra, vorrei sapere se e' possibile eliminare questa finestra e come...

grazie
« Last Edit: October 08, 2007, 09:54:18 pm by Lontano »
Logged

Davide Renda

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1427
  • aka "Lontano"
    • www.daviderenda.eu
Re: Eliminare finestra secondaria immagini
« Reply #1 on: October 08, 2007, 09:58:12 pm »

Se vuoi disattivare la finestra in pop up che mostra l'immagine alla sua grandezza naturale, apri il file themes/sample/theme.php, cerca la funzione function theme_html_picture , copiala nel file theme.php del tuo tema in uso e modifica il codice seguente
Code: [Select]
if (isset($image_size['reduced'])) {
            $winsizeX = $CURRENT_PIC_DATA['pwidth']+5;  //the +'s are the mysterious FF and IE paddings
            $winsizeY = $CURRENT_PIC_DATA['pheight']+3; //the +'s are the mysterious FF and IE paddings
            $pic_html = "<a href=\"javascript:;\" onclick=\"MM_openBrWindow('displayimage.php?pid=$pid&amp;fullsize=1','" . uniqid(rand()) . "','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=$winsizeX,height=$winsizeY')\">";
            $pic_title = $lang_display_image_php['view_fs'] . "\n==============\n" . $pic_title;
            $pic_html .= "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" /><br />";
            $pic_html .= "</a>\n";
in
Code: [Select]
if (isset($image_size['reduced'])) {
            $winsizeX = $CURRENT_PIC_DATA['pwidth']+5;  //the +'s are the mysterious FF and IE paddings
            $winsizeY = $CURRENT_PIC_DATA['pheight']+3; //the +'s are the mysterious FF and IE paddings
           // $pic_html = "<a href=\"javascript:;\" onclick=\"MM_openBrWindow('displayimage.php?pid=$pid&amp;fullsize=1','" . uniqid(rand()) . "','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=$winsizeX,height=$winsizeY')\">";
            $pic_title = $lang_display_image_php['view_fs'] . "\n==============\n" . $pic_title;
            $pic_html = "<img src=\"" . $picture_url . "\" class=\"image\" border=\"0\" alt=\"{$lang_display_image_php['view_fs']}\" /><br />";
            $pic_html .= "</a>\n";

Attenzione, facendo questa manipolazione, non potrai più avere le finestre pop up con l'immagine a grandezza naturale, ma solo miniature ed immagini intermedie.
Altrimenti, se vuoi evitare pop up, puoi provare a moddare il tema con lightbox.js che aprirà l'immagine a grandezza naturale nella stessa pagina con un "artifizio" in Java. Dai un'occhiata al demo di questo tema DM-Random, che ne fa uso.

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #2 on: October 11, 2007, 02:59:08 pm »

Grazie della risposta, pero' nella demo vedo esattamente quello che succede a me, quando si clicca sull'immagine appare la finestra in pop-up, io vorrei solo eliminarla.
Logged

twist

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 360
    • 100iso.eu
Re: Eliminare finestra secondaria immagini
« Reply #3 on: October 11, 2007, 04:20:35 pm »

Perche' Lontano intendeva questo link http://coppermine-gallery.net/demo/cpg14x/index.php?theme=dm_random
Personalmente ti posso dire che la soluzione in questione sia la piu' elegante la utilizzo anche io nella mia galleria e mi piace molto

Ciao
Logged

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #4 on: October 12, 2007, 10:57:03 am »

Ok! Grazie mille^^

dimenticavo: dove trovo questa opzione?
Logged

Davide Renda

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1427
  • aka "Lontano"
    • www.daviderenda.eu
Re: Eliminare finestra secondaria immagini
« Reply #5 on: October 12, 2007, 11:32:30 am »

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #6 on: October 12, 2007, 11:34:50 am »

GRAZIE MILLE COME SEMPRE!! ;)
Logged

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #7 on: October 12, 2007, 02:29:59 pm »

Scusate ho provato ad installarlo, ma siccome non sono pratica di inglese credo di non avere ben capito come si fa, perche la finestra pop up non mi appare cosi come dovrebbe essere nella demo, prima cosa vorrei sapere se funziona con tutti i temi e se qualcuno mi aiuta a capire come devo fare.. credevo fosse piu semplice

Grazie
Logged

twist

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 360
    • 100iso.eu
Re: Eliminare finestra secondaria immagini
« Reply #8 on: October 12, 2007, 03:06:27 pm »

Si, credo possa essere adattato ad ogni tema, l'unico limite e' la versione di coppermine.

Allora segui le istruzioni di questo post che contiene una miniguida passo a passo:
http://forum.coppermine-gallery.net/index.php?topic=35539.msg190729#msg190729

Fai attenzione devi inserire il path giusto quando fai copia e incolla del codice nel tuo theme.
Vedrai che funziona

Logged

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #9 on: October 12, 2007, 07:09:34 pm »

Eppure ho seguito passo passo proprio questo post, pero' come gia' detto sopra ho difficolta' con la lingua l'inglese non lo conosco.

Ho difficolta' a capire cosa devo fare a questo punto:

Step 6. Be sure to link the "next.gif" and "previous.gif" correctly in the CSS!!!!
           With the CSS you have to link it like the following example:
           If the images are in the same folder of the css, then put in
Code: [Select]
#prevLink:hover, #prevLink:visited:hover { background: url(prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(nextlabel.gif) right 15% no-repeat; }


Sono onesta non c'ho capito niente!!!

Faccio prove su prove ma non succede nulla!

Io devo sapere come partire, mi devo creare una nuova cartella? come la devo chiamare e dove la devo posizionare precisamente? i file del lightbox vanno scompattati o caricati con come si trovano cio' il file css dentro la sua cartellina cosi come per il file js, oppure devono essere messi dentro una unica cartella? Il file template e' quello del tema che ho montato sulla galleria?
« Last Edit: October 12, 2007, 07:32:45 pm by Aily »
Logged

twist

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 360
    • 100iso.eu
Re: Eliminare finestra secondaria immagini
« Reply #10 on: October 12, 2007, 07:58:41 pm »

Mi permetto di postare unrapida traduzione al post inglese:


Al posto di seguire i passaggi che hai visto fino ad ora, prendi in considerazione questi: (i cambiamenti vengono applicati solo al CSS e al file theme.php --> passaggi 6 e 8 )

Step 1. Fai il backup della cartella themes!

Step 2. Crea una cartella lightbox all'interno di quella themes.

Step 3. Scarica LightBox JS v2.02 script da http://www.huddletogether.com/projects/lightbox2/.

Step 4. Estrai le cartelle css immagini & javascript all'interno della directory lightbox appena creata.

Step 5. Nella cartella js, edita lightbox.js in modo che il path delle immagini "loading" e "closelabel" puntino alla cartella corretta.
Trova
Code: [Select]
var fileLoadingImage = "images/loading.gif";
var fileBottomNavCloseImage = "images/closelabel.gif";

Cambia in
Code: [Select]
var fileLoadingImage = "themes/your_theme/lightbox/images/loading.gif";
var fileBottomNavCloseImage = "themes/your_theme/lightbox/images/closelabel.gif";

Step 6. Assicurati che "next.gif" and "previous.gif" puntino correttamente nel CSS!!!!
          Se le immagini si trovano nella stessa dir del CSS per esempio:
Code: [Select]
#prevLink:hover, #prevLink:visited:hover { background: url(prevlabel.gif) left 15% no-repeat; }
#nextLink:hover, #nextLink:visited:hover { background: url(nextlabel.gif) right 15% no-repeat; }


Step 7. Aggiungi questo codice nella sezione head del tuo template.html e cambia le directory in modo che combaci con le tue
Code: [Select]
<link rel="stylesheet" href="themes/your_theme_folder/lightbox/css/lightbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="themes/your_theme_folder/lightbox/js/prototype.js"></script>
<script type="text/javascript" src="themes/your_theme_folder/lightbox/js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="themes/your_theme_folder/lightbox/js/lightbox.js"></script>

Step 8. Aggiungi questo codice prima di ?> alla fine del file theme.php
Code: [Select]
// Displays a picture
function theme_html_picture()
{
    global $CONFIG, $CURRENT_PIC_DATA, $CURRENT_ALBUM_DATA, $USER;
    global $album, $comment_date_fmt, $template_display_media;
    global $lang_display_image_php, $lang_picinfo;

    $pid = $CURRENT_PIC_DATA['pid'];
    $pic_title = '';

    if (!isset($USER['liv']) || !is_array($USER['liv'])) {
        $USER['liv'] = array();
    }
    // Add 1 to hit counter
    if (!USER_IS_ADMIN && !in_array($pid, $USER['liv']) && isset($_COOKIE[$CONFIG['cookie_name'] . '_data'])) {
        add_hit($pid);
        if (count($USER['liv']) > 4) array_shift($USER['liv']);
        array_push($USER['liv'], $pid);
    }

    if($CONFIG['thumb_use']=='ht' && $CURRENT_PIC_DATA['pheight'] > $CONFIG['picture_width'] ){ // The wierd comparision is because only picture_width is stored
      $condition = true;
    }elseif($CONFIG['thumb_use']=='wd' && $CURRENT_PIC_DATA['pwidth'] > $CONFIG['picture_width']){
      $condition = true;
    }elseif($CONFIG['thumb_use']=='any' && max($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight']) > $CONFIG['picture_width']){
      $condition = true;
    }else{
     $condition = false;
    }

    if ($CURRENT_PIC_DATA['title'] != '') {
        $pic_title .= $CURRENT_PIC_DATA['title'] . "\n";
    }
    if ($CURRENT_PIC_DATA['caption'] != '') {
        $pic_title .= $CURRENT_PIC_DATA['caption'] . "\n";
    }
    if ($CURRENT_PIC_DATA['keywords'] != '') {
        $pic_title .= $lang_picinfo['Keywords'] . ": " . $CURRENT_PIC_DATA['keywords'];
    }

    if (!$CURRENT_PIC_DATA['title'] && !$CURRENT_PIC_DATA['caption']) {
        template_extract_block($template_display_media, 'img_desc');
    } else {
        if (!$CURRENT_PIC_DATA['title']) {
            template_extract_block($template_display_media, 'title');
        }
        if (!$CURRENT_PIC_DATA['caption']) {
            template_extract_block($template_display_media, 'caption');
        }
    }

    $CURRENT_PIC_DATA['menu'] = html_picture_menu(); //((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || ($CONFIG['users_can_edit_pics'] && $CURRENT_PIC_DATA['owner_id'] == USER_ID && USER_ID != 0) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : '';

    if ($CONFIG['make_intermediate'] && $condition ) {
        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'normal');
    } else {
        $picture_url = get_pic_url($CURRENT_PIC_DATA, 'fullsize');
    }

    $image_size = compute_img_size($CURRENT_PIC_DATA['pwidth'], $CURRENT_PIC_DATA['pheight'], $CONFIG['picture_width']);

    $pic_title = '';
    $mime_content = cpg_get_type($CURRENT_PIC_DATA['filename']);


    if ($mime_content['content']=='movie' || $mime_content['content']=='audio') {

        if ($CURRENT_PIC_DATA['pwidth']==0 || $CURRENT_PIC_DATA['pheight']==0) {
            $CURRENT_PIC_DATA['pwidth']  = 320; // Default width

            // Set default height; if file is a movie
            if ($mime_content['content']=='movie') {
                $CURRENT_PIC_DATA['pheight'] = 240; // Default height
            }
        }

        $ctrl_offset['mov']=15;
        $ctrl_offset['wmv']=45;
        $ctrl_offset['swf']=0;
        $ctrl_offset['rm']=0;
        $ctrl_offset_default=45;
        $ctrl_height = (isset($ctrl_offset[$mime_content['extension']]))?($ctrl_offset[$mime_content['extension']]):$ctrl_offset_default;
        $image_size['whole']='width="'.$CURRENT_PIC_DATA['pwidth'].'" height="'.($CURRENT_PIC_DATA['pheight']+$ctrl_height).'"';
    }

    if ($mime_content['content']=='image') {
        if (isset($image_size['reduced'])) {
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
        //First part of lightbox update
$pic_html = lightbox_list($CURRENT_PIC_DATA['pid']);
//End of first part
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
        } else {
            $pic_html = "<img src=\"" . $picture_url . "\" {$image_size['geom']} class=\"image\" border=\"0\" alt=\"\" /><br />\n";
        }
    } elseif ($mime_content['content']=='document') {
        $pic_thumb_url = get_pic_url($CURRENT_PIC_DATA,'thumb');
        $pic_html = "<a href=\"{$picture_url}\" target=\"_blank\" class=\"document_link\"><img src=\"".$pic_thumb_url."\" border=\"0\" class=\"image\" /></a>\n<br />";
    } else {
        $autostart = ($CONFIG['media_autostart']) ? ('true'):('false');

        $players['WMP'] = array('id' => 'MediaPlayer',
                                'clsid' => 'classid="clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" ',
                                'codebase' => 'codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ',
                                'mime' => 'type="application/x-mplayer2" ',
                               );
        $players['RMP'] = array('id' => 'RealPlayer',
                                'clsid' => 'classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" ',
                                'codebase' => '',
                                'mime' => 'type="audio/x-pn-realaudio-plugin" '
                               );
        $players['QT']  = array('id' => 'QuickTime',
                                'clsid' => 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" ',
                                'codebase' => 'codebase="http://www.apple.com/qtactivex/qtplugin.cab" ',
                                'mime' => 'type="video/x-quicktime" '
                               );
        $players['SWF'] = array('id' => 'SWFlash',
                                'clsid' => ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ',
                                'codebase' => 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ',
                                'mime' => 'type="application/x-shockwave-flash" '
                               );
        $players['UNK'] = array('id' => 'DefaultPlayer',
                                'clsid' => '',
                                'codebase' => '',
                                'mime' => ''
                               );

        if (isset($_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'])) {
            $user_player = $_COOKIE[$CONFIG['cookie_name'].'_'.$mime_content['extension'].'player'];
        } else {
            $user_player = $mime_content['player'];
        }

                // There isn't a player selected or user wants client-side control
        if (!$user_player) {
            $user_player = 'UNK';
        }

        $player = $players[$user_player];

        $pic_html  = '<object id="'.$player['id'].'" '.$player['classid'].$player['codebase'].$player['mime'].$image_size['whole'].'>';
        $pic_html .= "<param name=\"autostart\" value=\"$autostart\" /><param name=\"src\" value=\"". $picture_url . "\" />";
        $pic_html .= '<embed '.$image_size['whole'].' src="'. $picture_url . '" autostart="'.$autostart.'" '.$player['mime'].'></embed>';
        $pic_html .= "</object><br />\n";
    }

    $CURRENT_PIC_DATA['html'] = $pic_html;
    $CURRENT_PIC_DATA['header'] = '';
    $CURRENT_PIC_DATA['footer'] = '';

    $CURRENT_PIC_DATA = CPGPluginAPI::filter('file_data',$CURRENT_PIC_DATA);

    $params = array('{CELL_HEIGHT}' => '100',
        '{IMAGE}' => $CURRENT_PIC_DATA['header'].$CURRENT_PIC_DATA['html'].$CURRENT_PIC_DATA['footer'],
        '{ADMIN_MENU}' => $CURRENT_PIC_DATA['menu'],
        '{TITLE}' => bb_decode($CURRENT_PIC_DATA['title']),
        '{CAPTION}' => bb_decode($CURRENT_PIC_DATA['caption']),
        );

    return template_eval($template_display_media, $params);
}
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
 //Second part of lightbox update
function lightbox_list($picId)
{
$i = 0;
$pid = $picId;
$pic_data = get_pic_data($_GET['album'], $pic_count, $album_name, -1, -1, false);
foreach ($pic_data as $picture) {
if($CONFIG['thumb_use']=='ht' && $picture['pheight'] > $CONFIG['picture_width'] ){
  $condition = true;
}elseif($CONFIG['thumb_use']=='wd' && $picture['pwidth'] > $CONFIG['picture_width']){
  $condition = true;
}elseif($CONFIG['thumb_use']=='any' && max($picture['pwidth'], $picture['pheight']) > $CONFIG['picture_width']){
  $condition = true;
}else{
$condition = false;
}
if (is_image($picture['filename'])) {
if ($CONFIG['make_intermediate'] && $condition ) {
$picture_url = get_pic_url($picture, 'normal');
} else {
$picture_url = get_pic_url($picture, 'fullsize');
}
$pic_title = ($picture['title'] ? $picture['title'] : strtr(preg_replace("/(.+)\..*?\Z/", "\\1", htmlspecialchars($picture['filename'])), "_", " "));
if ($picture['pid'] == $pid) {
$picList .= "<a href=\"$picture_url\" rel=\"lightbox[list]\" title=\"$pic_title\">";
            $picList .= "<img src=\"$picture_url\" class=\"image\" border=\"0\" alt=\"Click to view full size image\" /><br />";
            $picList .= "</a>\n";
}else{
$picList .= "<a href=\"$picture_url\" rel=\"lightbox[list]\" title=\"$pic_title\"></a>\n";
}
$i++;
}
}
return $picList;
}
//End of second part
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/

I've put in a very ugly
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
/*$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$*/
to show what changes where made (there are 2 blocks that have been changed)

Step 9. Upload

[..]
SaWey


Spero che ora ti sia piu' chiaro

P.S. il punto 6 lo puoi saltare perche' con lo script aggiornato le gif prevlabel e nextlabel puntano gia' alla dir giusta
« Last Edit: October 12, 2007, 08:51:49 pm by twist »
Logged

Davide Renda

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1427
  • aka "Lontano"
    • www.daviderenda.eu
Re: Eliminare finestra secondaria immagini
« Reply #11 on: October 12, 2007, 09:53:50 pm »

Quote
Mi permetto di postare unrapida traduzione al post inglese:
Un grazie a nome di tutti :)

Davide Renda

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1427
  • aka "Lontano"
    • www.daviderenda.eu
Re: Eliminare finestra secondaria immagini
« Reply #12 on: October 12, 2007, 10:04:39 pm »

Un altro sistema per avere l'effetto Lightbox è andarsi a modificare il tema comparandolo con uno che ce l'ha, si tratta giusto di "infilare" qualche linea di codice copiando/incollando da un tema all'altro. Il tema DM-Random ha questa feature e potete "pescare" il codice da lì (per questo l'ho linkato -male- poco sopra). Tempo fa avevo modificato Connections con lightbox proprio in questo modo.

Aily

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 24
Re: Eliminare finestra secondaria immagini
« Reply #13 on: October 14, 2007, 12:15:43 am »

Grazie infinite per la vostra disponibilita' ora la cosa e' piu' chiara, presto mi metto all'opera per vedere di risolvere il mio problema ancora ringraziamenti vivissimi a tutti.
Logged
Pages: [1]   Go Up
 

Page created in 0.032 seconds with 18 queries.