示例#1
0
文件: Install.php 项目: frdl/webfan
 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'];
 }
示例#2
0
 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;
 }