/home/coolpkct/www/websites/cake3.cool.rocks/admin/classes/publisher.php
<?php
/**
 * Part of Showkase web site management package
 *
 * @package Showkase
 * @author Jack Hardie {@link http://www.jhardie.com}
 * @copyright Copyright (c) 2012, SimpleViewer Inc.
 */
defined('SK_ACCESS')||die('<h1>403: Forbidden</h1>');

class Publisher
{
     
    /**
     * Republish the whole web site
     * Nav object is created once only
     * Need to save (at least) the gallery in case of changes in viewer settings
     * Each viewer is re-cached once only
     *
     * @param object PageSet
     * @param object ThemeSet
     * @param object PageFactory
     * @param object GalleryIndex
     * @param object Nav
     * @return void
     */
    public static function republish(
        PageSet $pageSet,
        ThemeSet $themeSet,
        PageFactory $pageFactory,
        GalleryIndex $galleryIndex,
        Nav $nav)
    {
        $config = skConfig::getInstance();
        $cachedViewers = array();
        $viewersPath = $config->getAbsoluteViewersPath();
        foreach ($pageSet->getPagesData() as $key=>$value) {
            try {
                $page = $pageFactory->make($value['pageType'], $value['pageRef'], $value['path']);
                if (isset ($page->gallery)) {
                    $page->gallery->saveGallery();
                    // For users upgrading from v1.1.0 and safety net in case viewer cache out of date
                    if (!isset($cachedViewers[$value['pageType']])) {
                        $page->cacheViewer($viewersPath);
                        $cachedViewers[$value['pageType']] = true;
                    }
                }
                $page->saveLayer();
                $page->savePageHtml($nav, $galleryIndex);
            } catch (Exception $e) {
                Board::addExceptionMessage($e);
            }
        }
    }
}