Как я могу добавить подписи к этой автоматически создаваемой галерее php? - PullRequest
0 голосов
/ 12 июля 2011
<?php        
    /* settings */  
    $image_dir = 'gallery/';  
    $per_column = 3;  
    $count=0;
      if ($handle = opendir($image_dir)) {  
        while (false !== ($file = readdir($handle)))  
        {  
            if ($file != '.' && $file != '..')  
            {  
                if(strstr($file,'-thumb'))  
                {  
                    $files[] = $file;  
                }  
            }  
        }  
        closedir($handle);  
    }  
    if(count($files))  
    {  
        foreach($files as $file)  
        {   
            $count++;  
            echo '<a class="thumbnail" rel="one-big-group" href="',$image_dir,str_replace('-thumb','',$file),'"><img src="',$image_dir,$file,'" width="100" height="100" /></a>';  
            if($count % $per_column == 0) { echo '<div class="clear"></div>'; }  
        }  
    }  
    else  
    {  
        echo '<p>There are no images in this gallery.</p>';  
    }  

?>  

Как добавить подписи к каждому из изображений? Большое спасибо за ответ!

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Ваш код просматривает файлы в указанном каталоге, ищет файлы, содержащие ...-thumb... в имени файла, добавляет их в массив, а затем перебирает массив, чтобы сгенерировать HTML для отображения галереи миниатюр изображений.

Добавление дополнительной информации к чему-либо подобному, учитывая предоставленный вами очень ограниченный код, может быть выполнено любым количеством способов

  1. Вы можете реализовать базу данных со столбцом для каждого имени файла и связанный столбец, содержащий подписи / описания. Это может быть больше беда, чем стоит, в зависимости от того, чего вы пытаетесь достичь.
  2. Вы можете использовать плоский файл, который вы можете анализировать строка за строкой (вместо обхода
    папка для ...-thumb... изображений)
    , содержащая такой формат, как

    file1-thumb.png|some caption here
    file2-thumb.png|some caption here
    file3-thumb.png|some caption here
    ...
    
  3. Вы можете включить небольшую подпись в само имя файла и проанализировать / отформатировать заголовок из имен файлов. Вероятно, это будет самый быстрый маршрут, но наиболее ограниченный с точки зрения гибкости длины / символов, разрешенных для подписей.

    - file1-thumb--some_caption_here.png
    - file2-thumb--some_caption_here.png
    - file3-thumb--some_caption_here.png
    

Чтобы фактически добавить заголовок к сгенерированному HTML, вы можете использовать атрибут title, как предложил @rockerest, однако я бы лично добавил такой заголовок к самому изображению, поскольку именно это описывает заголовок (не ссылка)

<img src="..." title="..." ... />

UPDATE

Чтобы ответить на ваш комментарий (это обеспечивает лучшее форматирование кода) , скажем, у нас есть файл с именем file1-thumb--some_description_here.jpg, вы можете проанализировать и отформатировать заголовок с помощью preg_replace

$filename = 'file1-thumb--some_description_here.jpg';
$caption = preg_replace(array('/^.+-thumb--/', '/\.(jpg|jpeg|gif|png|bmp)$/', '/_/'), array('','',' '), $filename);

$caption сейчас описание здесь

0 голосов
/ 12 июля 2011

html title предлагает "заголовок", когда мышь наводится на изображение.

foreach($files as $file)  
        {   
            $count++;  
            echo '<a title="',$caption,'" class="thumbnail" rel="one-big-group" href="',$image_dir,str_replace('-thumb','',$file),'"><img src="',$image_dir,$file,'" width="100" height="100" /></a>';  
            if($count % $per_column == 0) { echo '<div class="clear"></div>'; }  
        }
...