0byt3m1n1
Path:
/
data
/
applications
/
aps
/
gallery
/
2.2-08
/
htdocs
/
modules
/
imageframe
/
classes
/
[
Home
]
File: ImageFrameImpl.class
<?php /* * Gallery - a web based photo album viewer and editor * Copyright (C) 2000-2007 Bharat Mediratta * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ GalleryCoreApi::requireOnce('modules/imageframe/classes/ImageFrameInterface_1_1.class'); /** * Implementation of the ImageFrameInterface for rendering a frame around an image * @package ImageFrame * @subpackage Classes * @author Alan Harder <alan.harder@sun.com> * @version $Revision: 15513 $ */ class ImageFrameImpl extends ImageFrameInterface_1_1 { /** * @see ImageFrameInterface_1_1::getImageFrameList */ function getImageFrameList() { global $gallery; $platform =& $gallery->getPlatform(); /* * Load the plugin even if it's deactivated since we only need it for translation, and * it's possible that this is getting called during the core upgrade, when we won't be * able to properly deal with deactivated plugins. */ list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'imageframe', true); if ($ret) { return array($ret, null); } $frames = array('solid' => $module->translate('Solid')); $dir = dirname(__FILE__) . '/../frames'; if ($platform->is_dir($dir) && $platform->is_readable($dir) && $fd = $platform->opendir($dir)) { while ($file = $platform->readdir($fd)) { $subdir = "$dir/$file"; $frameinc = "$subdir/frame.inc"; if ($platform->is_dir($subdir) && $platform->file_exists($frameinc)) { require($frameinc); $frames[$file] = $module->translate($frameData['name']); } } $platform->closedir($fd); } asort($frames); return array(null, array_merge(array('none' => $module->translate('None')), $frames)); } /** * @see ImageFrameInterface_1_1::init */ function init(&$template, $frameIds) { global $gallery; $platform =& $gallery->getPlatform(); static $simpleFrames; if (!$template->hasVariable('ImageFrameData')) { $simpleFrames = array( 'none' => array('type' => 'style', 'style' => 'border-style: none'), 'solid' => array('type' => 'style', 'style' => 'border: 1px solid black !important')); $templateAdapter =& $gallery->getTemplateAdapter(); $template->setVariable('ImageFrameData', array('idList' => '', 'data' => array())); } $template->head('modules/imageframe/templates/ImageFrameHead.tpl'); $data =& $template->getVariableByReference('ImageFrameData'); list ($ret, $module) = GalleryCoreApi::loadPlugin('module', 'imageframe'); if ($ret) { return $ret; } $urlGenerator =& $gallery->getUrlGenerator(); $baseUrl = $urlGenerator->generateUrl(array('href' => 'modules/imageframe/frames')); if (!is_array($frameIds)) { $frameIds = array($frameIds); } foreach ($frameIds as $frameId) { if (isset($data['data'][$frameId])) { continue; } if (isset($simpleFrames[$frameId])) { $data['data'][$frameId] = $simpleFrames[$frameId]; } else { $dir = dirname(__FILE__) . "/../frames/$frameId"; $frameinc = "$dir/frame.inc"; if ($platform->is_dir($dir) && $platform->file_exists($frameinc)) { require($frameinc); $frame = array('type' => isset($frameData['style']) ? 'style' : 'image'); foreach ($frameData as $key => $value) { if ($key == 'name' || $key == 'description') { $frame[$key] = $module->translate($value); } else if (!strncmp($key, 'image', 5) && $value) { $frame[$key] = "$baseUrl/$frameId/" . $value; } else { $frame[$key] = $value; } } if ($frame['type'] == 'image') { $frame['wHL'] = max($frameData['widthTTL'], $frameData['widthBBL']); $frame['wHR'] = max($frameData['widthTTR'], $frameData['widthBBR']); $frame['hVT'] = max($frameData['heightLLT'], $frameData['heightRRT']); $frame['hVB'] = max($frameData['heightLLB'], $frameData['heightRRB']); $frame['rowspan'] = 1 + ($frame['hVT']>0?1:0) + ($frame['hVB']>0?1:0); $frame['colspan'] = 1 + ($frame['wHL']>0?1:0) + ($frame['wHR']>0?1:0); } $data['data'][$frameId] = $frame; } } } $data['idList'] = implode('|', array_keys($data['data'])); return null; } /** * Smarty callback to render an ImageFrame */ function renderImageFrame($params, $content, &$smarty) { $smarty->_smarty_include(array( 'smarty_include_tpl_file' => 'gallery:modules/imageframe/templates/ImageFrame.tpl', 'smarty_include_vars' => array('frame' => $params['frame'], 'content' => trim($content)))); } /** * @see ImageFrameInterface_1_1::getSampleUrl */ function getSampleUrl($itemId=null) { global $gallery; $urlGenerator =& $gallery->getUrlGenerator(); $params = array('view' => 'imageframe.Sample'); if (isset($itemId)) { $params['itemId'] = $itemId; } return array(null, $urlGenerator->generateUrl($params)); } } ?>