Esempio n. 1
0
 /**
  * Return JSON string with version informations
  *
  * @param skip cache boolean
  * 
  * @return JSON string
  */
 function getInstalled($skipcache = 0)
 {
     if (!Core::$user->has("install")) {
         Core::log('A', "Suspicious behavior " . $this->getsiteurl());
         return "PHPPE-E: " . L("Access denied");
     }
     $t = "";
     //! if remote not available, get from local directly
     if (!empty(Core::$user->data['remote']['identity']) && !empty(Core::$user->data['remote']['user']) && !empty(Core::$user->data['remote']['host']) && !empty(Core::$user->data['remote']['path'])) {
         //! get list from remote server
         try {
             $r = explode("\n", trim(Tools::ssh("cat " . escapeshellarg(Core::$user->data['remote']['path'] . "/composer.json") . " \\|grep name \\| head -1 \\; find " . escapeshellarg(Core::$user->data['remote']['path'] . "/vendor/phppe") . " -type f -name composer.json -exec sh -c \\'cat {} \\| grep -e name[^_] \\|head -1 \\| tr -d \\\\'\\\\n\\\\' \\; cat {} \\| grep -e version[^_] \\' \\\\\\; 2>&1")));
         } catch (\Exception $e) {
             $r[0] = $e->getMessage();
         }
         //! get site title from project composer.json
         if (!self::isErr($r[0])) {
             $d = explode('"', $r[0]);
             if (empty($d[3]) || $d[3] == "phppe3") {
                 $d[3] = "No name";
             }
             $t = "{ \"name\": \"" . ($d[3] == "No name" ? L($d[3]) : $d[3]) . "\" }";
         } else {
             $t = "{ \"name\": \"" . View::e("", substr(trim($r[0]), 0, 4) == "cat:" ? L("Run diagnostics first!") : str_replace("\r", "", str_replace("\n", " ", trim(empty($r[1]) ? $r[0] : $r[1]))), "") . "\" }";
         }
         if (!self::isErr(@$r[1]) && !self::isErr(@$r[2])) {
             foreach ($r as $v) {
                 $d = explode("\"", $v);
                 if (!empty($d[3]) && !empty($d[7])) {
                     $t .= ",{ \"id\": \"" . $d[3] . "\", \"version\": \"" . $d[7] . "\" }";
                 }
             }
         }
     } else {
         $t = "{ \"name\": \"" . View::e("", L("configure remote access"), "") . "\" }";
         $d = glob("vendor/phppe/*" . "/composer.json");
         if (file_exists("vendor/phppe/composer.json")) {
             $d[] = "vendor/phppe/composer.json";
         }
         foreach ($d as $v) {
             $j = json_decode(file_get_contents($v), true);
             if (!empty($j['name']) && !empty($j['version'])) {
                 $t .= ",{ \"id\": \"" . $j['name'] . "\", \"version\": \"" . $j['version'] . "\" }";
             }
         }
     }
     return $t;
 }
Esempio n. 2
0
File: DB.php Progetto: bztsrc/phppe3
 /**
  * String representation of the object.
  * NOTE: __toString() not allowed to throw exception!
  *
  * @return string   sql sentance
  */
 public function __toString()
 {
     try {
         return $this->sql();
     } catch (\Exception $e) {
         return View::e('E', $e->getMessage(), 'DB');
     }
 }