public function createThumbnailsFor() { $_SESSION[__CLASS__]['template'] = $_POST['template']; $miniaturesFolder = SH_TEMPLATE_FOLDER . $_POST['template'] . '/images/miniatures/'; $defaultFolder = $miniaturesFolder . 'default/'; if (!is_dir($defaultFolder)) { echo 'The folder ' . SH_TEMPLATE_PATH . $_POST['template'] . '/images/miniatures/default/ does not exist!!'; return true; } if (file_exists($miniaturesFolder . '370_reallyShiny.png')) { echo 'ALREADY_DONE'; return true; } $_SESSION[__CLASS__]['cpt'] = 0; // Listing the images to creation the variations for if (file_exists($defaultFolder . 'params.xml')) { // We read the params $paramsFile = new DOMDocument(); $paramsFile->load(realpath($defaultFolder . 'params.xml')); $xpath = new DOMXpath($paramsFile); // We get the layers $layers = array(); $query = '//miniatures/layers/layer'; $entries = $xpath->query($query); foreach ($entries as $entry) { if ($entry->hasAttributes()) { $attributes = $entry->attributes; $zindex = $attributes->getNamedItem('zindex')->nodeValue; $children = $entry->childNodes; foreach ($children as $child) { $nodeName = $child->nodeName; if ($nodeName == 'image') { $attributes = $child->attributes; $src = $attributes->getNamedItem('src')->nodeValue; $layers[$zindex]['imageSrc'] = $defaultFolder . $src; $layers[$zindex]['name'] = basename($src); } elseif ($nodeName == 'palette') { $attributes = $child->attributes; $layers[$zindex]['type'] = $attributes->getNamedItem('type')->nodeValue; if ($layers[$zindex]['type'] == 'file') { $src = $attributes->getNamedItem('src')->nodeValue; flush(); $layers[$zindex]['palette'] = sh_colors::getPalette($defaultFolder . $src); } } } } } } else { echo 'There was no params file.'; exit; } ksort($layers); $_SESSION[__CLASS__]['layersForThumbnails'] = $layers; echo 'OK'; }
protected function getPalette($source) { if (isset($this->palettes[basename($source)])) { return basename($source); } if (file_exists($this->unpackFolder . $source)) { $source = $this->unpackFolder . $source; } $this->palettes[basename($source)] = sh_colors::getPalette($source); return basename($source); }