protected function katalog() { if (!isset($_SESSION[self::SESSKEY]['KATALOG'])) { $_SESSION[self::SESSKEY]['KATALOG'] = array(); } if (!isset($_SESSION[self::SESSKEY]['KATALOG']['pragmamx'])) { $_SESSION[self::SESSKEY]['KATALOG']['pragmamx'] = array(); } $sk =& $_SESSION[self::SESSKEY]['KATALOG']['pragmamx']; if (!isset($sk['d']) || !isset($sk['t']) || $sk['t'] < time() - 12 * 60 * 60) { $sk['t'] = time() - 12 * 60 * 60 - 60; $http = new \webdof\Http\Client(); $url = 'http://www.webfan.de/dl/katalog.pragmamx.php'; $r = $http->request($url, 'GET', array(), array(), E_USER_WARNING); if (intval($r['status']) !== 200) { trigger_error('Cannot download products metadata! (' . __METHOD__ . ')', E_USER_WARNING); return false; } $bs = new \frdl\webfan\Serialize\Binary\bin(); $sk['d'] = $bs->unserialize($r['body']); $sk['t'] = time(); } $this->katalog =& $_SESSION[self::SESSKEY]['KATALOG']; }
public function installSource($class, &$code, &$error = '', &$config_source = null) { if ($config_source === null) { $config_source =& self::$config_source; } if ($config_source['install'] !== true) { return null; } if (!isset($code['php'])) { return false; } if (isset($code['installed']) && $code['installed'] === true) { return true; } $bs = new \frdl\webfan\Serialize\Binary\bin(); $code['doc'] = $bs->unserialize($this->unpack_license($code['d'])); $error = ''; $r = false; if (isset($config_source['dir_lib']) && is_string($config_source['dir_lib']) && is_dir($config_source['dir_lib'])) { $dir = rtrim($config_source['dir_lib'], self::DS . ' ') . self::DS; $filename = $dir . str_replace('\\', self::DS, $class) . '.php'; $dir = realpath(dirname($filename)) . self::DS; if (!is_dir($dir)) { if (!mkdir($dir, 0755, true)) { $error = 'Cannot create directory ' . $dir . ' and cannot save class ' . $class . ' in ' . __METHOD__ . ' ' . __LINE__; trigger_error($error, E_USER_WARNING); } } if ($error === '') { $file_header = "/**\n* File generated by frdl Application Composer : class : " . __CLASS__ . "\n**/\n"; $code = '<?php ' . "\n" . $file_header . "\n\$filemtime = " . time() . ";\n\$class_documentation = " . var_export($code['doc'], true) . ";\n" . $code['php'] . "\n"; $fp = fopen($filename, 'wb+'); fwrite($fp, $code); fclose($fp); if (file_exists($filename)) { $code['installed'] = true; $r = true; } else { $error = 'Cannot create file ' . $filename . ' and cannot save class ' . $class . ' in ' . __METHOD__ . ' ' . __LINE__; trigger_error($error, E_USER_WARNING); } } } return $r; }