Тотоев Александр
Предлагаю вашему вниманию пример программирования
на языке php с использованием баз данных mysql (в одном из вариантов
программы) на примере создания галереи фотографий, картинок и т.п.
Картинки в предпросмотре должны быть определенной ширины (чтобы не
расползалась страница).
Галерея имеет следующие свойства:
- предпросмотр;
- навигация "вперед-назад";
- навигация по номерам страниц галереи;
- наличие описаний к картинкам;
- администрирование описаний к картинкам;
- варианты 2 и 3 имеют возможность изменять порядок вывода
картинок;
- вариант 3 сделан с использованием базы mysql
- варианты 1 и 3 легко преобразуемы в галерею с возможностью
дополнения галереи посетителями;
Вариант 1
Программа ищет файлы картинок в
указанном ей каталоге с маленькими картинками (предпросмотр). Затем
она ищет описания для выводимых картинок в текстовом файле.
Определяет кол-во картинок и создает навигацию по галерее.
Определяет размеры картинок и выводит их с описаниями и с
яваскриптом на каждой картинке, который открывает большой вариант
картинки в новом окне с размерами на 40 пикселей больше размера
картинки с возможностью скроллинга, если таковой окажется необходим
для просмотра картинки полностью (при малом размере экрана).
Вот собственно и код варианта:
Программа администрирования текстов
описаний: Я считаю
этот способ самым проостым для начинающего программиста. Более
сложный способ обновления я собираюсь сделать в будущих
статьях. Конечно, можно делать более серьезные интерфейсы, но в
этом варианте, который конечно не рассчитан на ламера, можно быстро
править сразу все позиции. Вот собственно код:
В этом варианте, файл создаем так, как
написано в комментарии к программе: 1 Моя первая
фотография rt моя фотография rt.jpg
, где 1 и rt -
имена файлов, а строки под ними соответственно описания к
ним.
Вариант 2
Отличие этого варианта
отпредыдущего в том, что программа читает файл инициализации
галереи. В каждой строке такая конструкция (так надо заполнять
файл для этого варианта!): 1.jpg|Моя первая
фотография rt.jpg|моя фотография rt.jpg где символ "|" - это
разделитель между описанием и именем файла картинки.
Как видно, в этом варианте надо писать в файле имя
файла картинки с расширением. Если это вам это очень мешает, то
можете переделать так, чтобы было в файле только имя, а расширение
определялось бы автоматически, основываясь на первом
примере. Алгоритм такого варианта будет: определить имя
картинки, считать имена файлов в папке с файлами, обрезая у имен
файлов расширения, находим нужный, сравнивая каждый раз с тем, что
взяли из файла. Именно совпавший и будет искомым.
Далее программа, создав массив из имен и описаний
картинок, определяет, на какой странице галереи клиент находится и
выводит ему соответственно ту или иную страницу. Сам движок
галереи остается тем же, как вы наверное заметили. Изменяются
некоторые его части. Вот сам код:
Программа администрирования та же, что и в варианте 1.
Вариант 3
В этом варианте используется
база данных mysql вместо текстового файла для хранения описаний,
имен картинок и порядка их следования. Здесь тоже в базе хранятся
именя файлов с расширениями (при варианте без расширений, будет
тратиться время на пиоск картинки по описанному выше алгоритму, а
при заливке картинок через вэбинтерфейс проще хранить имена файлов с
расширениями). Алгоритм работы программы такой же, что и в
предыдущем примере. Однако, вместо считывания файла, считывается
база галереи. Для ускорения можно было бы поместить операцию
считывания в цикл вывода картинок на экран и не считывать все строки
базы. Для создания таблицы базы картинок используйте этот
скрипт:
Программа администрирования:
Форма заполняется как и во втором варианте.А для
получения 3-го варианта в коде программы 2-го варианта строки от
строки //сама программадо
строки$maxpic=count($pic); // сколько файлов в папке с
малыми картинкамикоторые являются блоком считывания файла в
массивы, заменяются на блок:
Результат работы блока точно такой же, что и во
втором варианте - массивы $pic и $description, где храним имена
файлов картинок и описания к ним. Но работает такая галерея быстрее.
Однако, каждый раз, когда хотите залить новую картинку, надо
администрить галерею, даже если не нужно описание. А в первом
варианте стоит только лишь закинуть в папки файлы картинок.
Таким образом, получаем 3 рабочих варианта
программы галереи.
Литература по PHP
|