Скрипт фотогалереи. Том 1. Глава 3

Tuesday, 09 February 2010 | Автор: programmer

Итак... Переходим к конечному пункту создания фотогалереи версии 0.1. Эт

а статья будет отражать создание frontend'a, т.е. того интерфейса, что видит пользователь, который посетил фотогалерею.
Для решения задач этой главы, чтобы не изобретать велосипед мы будем использовать следующие продукты: jQuery (javascript фреймворк), FancyBox ("красивость" для отображения фотографий).

Создаем класс работы с галереей:

        class Gallery extends sql_db {
                function Gallery($sqlserver, $sqluser, $sqlpassword, $database) {
                        $db = parent::sql_db($sqlserver, $sqluser, $sqlpassword, $database, false);
                }

                function menu() {
                        $sql = "select * from tbl_cat order by position asc";
                        parent::sql_query($sql);
                        return parent::sql_fetchrowset();
                }

                function viewGallery($cid, $page, $count) {
                        $sql = "select * from tbl_gallery ".($cid != 0? " where cid={$cid} ": "")." order by datetime desc limit ".($page*$count).", ".$count;
                        parent::sql_query($sql);
                        return parent::sql_fetchrowset();
                }

                function countPhotos($cid) {
                        $sql = "select count(*) as total from tbl_gallery ".($cid != 0? " where cid={$cid} ": "");
                        parent::sql_query($sql);
                        $row = parent::sql_fetchrow();
                        return $row['total'];
                }
        }


Метод menu() отдает список категорий фотогалереи, из которого мы сделаем меню.
Метод viewGallery() исходя из передаваемых параметров строит запрос на возвращение списка фотографий, удовлетворяющих условиям.
countPhotos() просто отдает количество фотографий в определенной категории или же во всей фотогалерее.

Все остальная работа осуществлялась над создание "представления" (MVC) данных из базы в графический вид. Посмотрим файл template.php в папке class, там мы найдем несколько методов:
header(): вывод шапки.
footer(): вывод подвала.
menu(): вывод меню со списком категорий.
gallery(): вывод списка фотографий определенной категории или если категория не выбрана, то вывод всех фотографий.
pages(): вывод списка страниц, если нужно бить на страницы.

 

Единственное что забыл изначально дать, так это дамп базы MySQL:

DROP TABLE IF EXISTS `tbl_cat`;
CREATE TABLE `tbl_cat` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` char(50) NOT NULL,
  `position` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `IDX_POS` (`position`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;

INSERT INTO `tbl_cat` (`id`,`name`,`position`) VALUES  (1,'Тестовая категория',1), (3,'Новая категория',2);

DROP TABLE IF EXISTS `tbl_gallery`;
CREATE TABLE `tbl_gallery` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `cid` int(10) unsigned NOT NULL,
  `datetime` int(10) unsigned NOT NULL,
  `hint` char(255) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `IDX_CID` (`cid`),
  KEY `IDX_DT` (`datetime`)
) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=cp1251;

INSERT INTO `tbl_gallery` (`id`,`cid`,`datetime`,`hint`) VALUES
 (1,1,1,'Первое фото'),
 (29,3,1265709559,''),
 (24,3,1265709060,'Картинка'),
 (21,3,1265708939,'Принтер'),
 (19,3,1265621626,'Пейнтбол'),
 (18,1,1265620583,'');

DROP TABLE IF EXISTS `tbl_var`;
CREATE TABLE `tbl_var` (
  `id` int(11) NOT NULL auto_increment,
  `hint` text NOT NULL,
  `var` varchar(255) NOT NULL default '',
  `value` varchar(255) NOT NULL default '',
  `view` smallint(1) NOT NULL default '0',
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=cp1251;

INSERT INTO `tbl_var` (`id`,`hint`,`var`,`value`,`view`) VALUES
 (1,'Количество фото на странице','count','25',1),
 (2,'Ширина превью','img_x','100',1),
 (3,'Высота превью','img_y','100',1);

 

Пример работы скрипта: http://phpprogs.ru/test/photogallery/

Скачать проект Вы можете по ссылке: [attachment=1]

Обсуждение скрипта: http://phpprogs.ru/forum/
 
Tweet


Категория(и): Изучаем PHP, Скрипты, MySQL

Комментарии


Tuesday, 09 February 2010 | 19:41:58 | Автор: my
У админки приятный интерфейс =)
Tuesday, 09 February 2010 | 19:43:01 | Автор: programmer
Старался :)
Sunday, 24 June 2012 | 11:54:21 | Автор: sidny

как скачать можно?

Sunday, 25 November 2012 | 18:32:22 | Автор: alexkabarete

как скачать можно?

Thursday, 14 February 2013 | 23:23:46 | Автор: hawkhunter

Во второй главе

Добавить комментарий
Чтобы оставить комментарий, Вам необходимо зарегистрироваться или авторизироваться