| // +---------------------------------------------------------------------------+ // $Id$ class Gallery2_Block_RandomThumb{ var $template = 'RandomThumb.html'; var $templatePath = 'gallery2'; function init(&$output, $block_id, &$aParams){ return $this->getBlockContent($output, $aParams); } function getBlockContent($output, &$aParams) { SGL::logMessage(null, PEAR_LOG_DEBUG); $blockOutput = &new SGL_Output(); $blockOutput->theme = $output->theme; $blockOutput->webRoot = $output->webRoot; /* TODO: Determine if g2Dir, $g2EmbedUri, and g2Uri are available from the Gallery2Mgr */ if (array_key_exists('g2Dir',$aParams)){ $g2Dir = $aParams['g2Dir']; } else { return false; } if (array_key_exists('g2EmbedUri',$aParams)){ $g2EmbedUri = $aParams['g2EmbedUri']; } else { return false; } $g2FullInit = true; if (array_key_exists('g2Uri',$aParams)){ $g2Uri = $aParams['g2Uri']; } else { return false; } $g2Blocks = 'randomImage'; /* Pipe(|) separate list chosen from: randomImage, recentImage, viewedImage, randomAlbum, recentAlbum, viewedAlbum, dailyImage, weeklyImage, monthlyImage, dailyAlbum, weeklyAlbum, monthlyAlbum, specificItem; default is randomImage */ $g2ShowAry = array(); if (array_key_exists('g2ShowHeading',$aParams)){ if ($aParams['g2ShowHeading']){ $g2ShowAry[] = 'heading'; } } if (array_key_exists('g2ShowTitle',$aParams)){ if ($aParams['g2ShowTitle']){ $g2ShowAry[] = 'title'; } } if (array_key_exists('g2ShowDate',$aParams)){ if ($aParams['g2ShowDate']){ $g2ShowAry[] = 'date'; } } if (array_key_exists('g2ShowViewCount',$aParams)){ if ($aParams['g2ShowViewCount']){ $g2ShowAry[] = 'views'; } } if (array_key_exists('g2ShowOwner',$aParams)){ if ($aParams['g2ShowOwner']){ $g2ShowAry[] = 'owner'; } } if (count($g2ShowAry) > 0){ $g2Show = implode("|",$g2ShowAry); } else { $g2Show = 'none'; } require_once $g2Dir . '/embed.php'; $ret = GalleryEmbed::init(array( 'fullInit' => $g2FullInit, 'g2Uri' => $g2Uri, 'baseUri' => $g2EmbedUri)); if ($ret) { SGL::raiseMsg("GalleryEmbed::init failed, here is the error message: " . $ret->getAsHtml()); exit; } /* * See "Site admin" -> "image block" for all available options. the parameters are the same * as for the external imageblock */ list ($ret, $bodyHtml, $headHtml) = GalleryEmbed::getImageBlock(array( 'blocks' => $g2Blocks, 'show' => $g2Show)); if ($ret) { SGL::raiseMsg("GalleryEmbed::getImageBlock failed, here is the error message: " . $ret->getAsHtml()); exit; } $blockOutput->randomThumb = $bodyHtml; return $this->process($blockOutput); } function process(&$output) { // use moduleName for template path setting $output->moduleName = $this->templatePath; $output->masterTemplate = $this->template; $view = new SGL_HtmlSimpleView($output); return $view->render(); } } ?>