validateConfig()) return false; /* Give the Taskmanager the job and create the tgz */ $taskId = 'xscreensaver' . mt_rand() . '-' . microtime(true); $task = Taskmanager::submit('MakeTarball', array( 'id' => $taskId, 'files' => $this->getFileArray(), 'destination' => $tgz, ), false); return $task; } protected function moduleVersion() { return self::VERSION; } protected function validateConfig() { return isset($this->moduleData['qss']) && isset($this->moduleData['texts']) && isset($this->moduleData['texts']['text-idle-kill']) && isset($this->moduleData['texts']['text-no-timeout']) && isset($this->moduleData['texts']['text-shutdown']); } public function setData($key, $value) { switch ($key) { case 'qss': case 'texts': case 'messages': break; default: return false; } $this->moduleData[$key] = $value; return true; } public function allowDownload() { return false; } /** * Creates a map with filepath => file content * * @return array in the form of Map */ private function getFileArray() { $files = array( '/opt/openslx/xscreensaver/style.qss' => $this->moduleData['qss'], '/opt/openslx/xscreensaver/text-idle-kill' => $this->wrapHtmlTags('text-idle-kill'), '/opt/openslx/xscreensaver/text-no-timeout' => $this->wrapHtmlTags('text-no-timeout'), '/opt/openslx/xscreensaver/text-shutdown' => $this->wrapHtmlTags('text-shutdown'), ); /* Create the message.ini from the messages array */ $messages = ''; foreach ($this->moduleData['messages'] as $category => $array) { $messages .= '[' . $category . ']' . "\n"; foreach ($array as $key => $message) { $messages .= $key . '="' . str_replace(['\\', '"', "\n", "\r"], '-', $message) . '"' . "\n"; } } $files['/opt/openslx/xscreensaver/messages.ini'] = $messages; /* Add locked files if there are any */ if (isset($this->moduleData['texts']['text-idle-kill-locked'])) $files['/opt/openslx/xscreensaver/text-idle-kill-locked'] = $this->wrapHtmlTags('text-idle-kill-locked'); if (isset($this->moduleData['texts']['text-no-timeout-locked'])) $files['/opt/openslx/xscreensaver/text-no-timeout-locked'] = $this->wrapHtmlTags('text-no-timeout-locked'); if (isset($this->moduleData['texts']['text-shutdown-locked'])) $files['/opt/openslx/xscreensaver/text-shutdown-locked'] = $this->wrapHtmlTags('text-shutdown-locked'); return $files; } private function wrapHtmlTags($text_name) { return '' . $this->moduleData['texts'][$text_name] . ''; } }