DSite CMS
DSite CMS
создано Media Programming Group
Последняя статья: Как добавить заголовок новости в Title

Поиск: 
Главная            Статьи            Форум            Новости            Описание
Обучающие ролики
Примеры сайтов на CMS DSite
Цены
Вебстудиям
Заявка на DSite
FAQ
Ссылки
Контакты
Скачать

Новости:
05.05.11 :: Обновление 4.91 (релиз)

21.04.11 :: Обновление 4.87

07.04.11 :: Обновление 4.83

04.02.11 :: Обновление от 01.02

25.06.10 :: Поиск по содержимому страниц


Логин:
Пароль:

Забыли пароль? Восстановить

Также Вы можете пройти регистрацию

17.08.2005 :: Отображение картинок и файлов из каталога

"Посвящяется безвременно покинувшему нас модулю viewpic.php"

Прежде чем перейти к непосредственному описанию того как картинки каталога могут быть отображены на сайте, расскажем о новых возможностях, появившихся в системе DSite.

Знания, которые нам понадобятся для чтения этой статьи - это служебные страницы. Служебная страница - это страница, которая живет сама по себе, вне рамок шаблона и секций. Начиная с версии главного индекса 1.40, отдельная страница сайта может быть выведена пользователю путем задания одного дополнительного параметра индексному модулю системы DSite.
Зачем это нужно? Как показывает практика, существует ряд страниц, которые необязательно должны отображаться в рамках шаблона сайта, его дизайна и его блоков, например, страницы, всплывающие в окнах. Раньше мы эмулировали это таким образом: в шаблоне создавался блок, который выводился до любого первого символа шаблона. Если в этом блоке вывести необходимую информацию и поставить оператор die(), то получится как раз страница без шаблона. Однако, когда задача по использованию таких страниц стала типовой, возможность вывода была вмонтирована непосредственно в модуль отображения. Такие страницы сайта мы называем служебными. Как правило эти страницы не привязаны ни к одному блоку ни одной секции. Они существуют сами по себе. Секрет использования заключен в ссылке. Вместо id секции, подставляется id страницы, и указывается дополнительный параметр usepages=1.

Теперь вернемся к отображению картинок или документов, которые находятся в БД каталога. Для отображения применяется класс uploader, который находится в модуле upl_frm.inc. Для того чтобы отобразить картинку или документ из каталога применяется следующий скрипт:

<?
$whereclause = 'where itemid='.$_GET['picid']; // получаем условие выборки из параметра get
$tablename = 'catalog_tbl'; // прописываем имя таблицы
$tablefield = 'picture'; // специфицируем поле таблицы, содержащее картинку
require_once PLUGINPATH.'catalogue/inc/upl_frm.inc'; // инклудим необходимый модуль
//
$upl = new uploader($tablename, $tablefield, stripslashes($whereclause)); //инстанциируем класс
$upl->DisplayItem(); // выводим документ
?>

Вот и все. Служебная страница для вывода картинок готова. Можно варьировать по-разному параметры страницы, однако чем больше свободы вы предоставляете, тем более уязвим становится скрипт, поэтому мы рекомендуем зашивать имя таблицы внутрь страницы.
Как использовать?

Допустим в определенном месте динамической страницы выводится картинка. Сделать это можно, используя тэг img:

<img border=0 src="/index.php?id=12&usepages=1&picid=155">

Передаваемый параметр, задающий идентификатор товара в каталоге, определяет строку БД с картинкой. Картинка выведена.

Остаются две нерешенных задачи:

1. как определить есть картинка для данного товара или нет;
2. как определить ширину и высоту картинки, чтобы страница не "прыгала" при загрузке.

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

<?
$whereclause = 'where itemid='.$_GET['picid']; // получаем условие выборки из параметра get
$tablename = 'catalog_tbl'; // прописываем имя таблицы
$tablefield = 'picture'; // специфицируем поле таблицы, содержащее картинку
require_once PLUGINPATH.'catalogue/inc/upl_frm.inc'; // инклудим необходимый модуль
//
$upl = new uploader($tablename, $tablefield, stripslashes($whereclause)); //инстанциируем класс
$bpic = ! $upl->IsEmpty(); // проверяем наличие картинки
?>

Ранее мы использовали метод GetPreviewHref, но сейчас мы не рекомендуем этого делать в силу того, что такая методика несколько устарела. Тем не менее, можно сделать хороший скрипт и на базе этого метода.

Для получения информации о ширине и высоте картинки, которую необходимо включать в тэг img воизбежание эффекта "прыганья", необходимо использовать вспомогательный класс uploader_image_helper.

<?
$uih = uploader_image_helper($upl);
$wh = $uih->getparamstr();
?>
<img border=0 <?=$wh;?> ...>

Метод getparamstr() возвращает строку параметров для <img> и должен быть вставлен куда-нибудь внутрь тэга. Также хорошим тоном будет определить alt для изображения, соответствующий элементу каталога (например, наименование товара).



Статьи:

« 1  2  


FAQ  Поиск на форуме
Новое сообщение
Copyright © 2019 Webmedia.ru - создание сайтов & Media Programming Group