Example #1
0
 public function __construct()
 {
     parent::__construct();
     Model\Config::set();
     $this->authorize();
     $this->val['navi'] = $this->navi();
 }
Example #2
0
 public function __construct()
 {
     parent::__construct();
     Model\Config::set();
     $this->authorize();
     $this->val['navi'] = $this->navi();
     isset($this->query_key) || ($this->query_key = 'id');
 }
Example #3
0
 public function config_post_saveattribute($f3)
 {
     $attribute = str_replace("-", ".", $f3->get("POST.attribute"));
     $value = $f3->get("POST.value");
     $response = array("error" => null);
     if (!$attribute) {
         $response["error"] = "No attribute specified.";
         $this->_printJson($response);
         return;
     }
     $config = new \Model\Config();
     $config->load(array("attribute = ?", $attribute));
     $config->attribute = $attribute;
     switch ($attribute) {
         case "site-name":
             if (trim($value)) {
                 $config->value = $value;
                 $config->save();
             } else {
                 $response["error"] = "Site name cannot be empty.";
             }
             break;
         case "site-timezone":
             if (in_array($value, timezone_identifiers_list())) {
                 $config->value = $value;
                 $config->save();
             } else {
                 $response["error"] = "Timezone is invalid.";
             }
             break;
         default:
             $config->value = $value;
             $config->save();
     }
     if (!$response["error"]) {
         $repsonse["attribute"] = $attribute;
         $repsonse["value"] = $value;
     }
     $this->_printJson($response);
 }
Example #4
0
 /**
  * Asynchronously post anonymous statistics to meta.phproject.org
  */
 public function postStats()
 {
     $f3 = \Base::instance();
     $db = $f3->get("db.instance");
     // Add unique ID
     $data = array("key" => $f3->get("statsplugin.key"), "revision" => $f3->get("revision"));
     // Add basic stats
     $result = $db->exec("SELECT COUNT(id) AS `count` FROM user WHERE role != 'group'");
     $data["users"] = $result[0]["count"];
     $result = $db->exec("SELECT COUNT(id) AS `count` FROM user WHERE role = 'group'");
     $data["groups"] = $result[0]["count"];
     $result = $db->exec("SELECT COUNT(id) AS `count` FROM issue");
     $data["issues"] = $result[0]["count"];
     $result = $db->exec("SELECT COUNT(id) AS `count` FROM issue_update");
     $data["updates"] = $result[0]["count"];
     $result = $db->exec("SELECT COUNT(id) AS `count` FROM issue_comment");
     $data["comments"] = $result[0]["count"];
     $result = $db->exec("SELECT value as version FROM config WHERE attribute = 'version'");
     $data["version"] = $result[0]["version"];
     if ($this->asyncPost("http://meta.phproject.org/stats/post.php", $data)) {
         $config = new \Model\Config();
         $config->setVal("statsplugin.last_sent", time());
     }
 }
Example #5
0
 /**
  * Perform update
  *
  * @return void
  */
 protected function update()
 {
     echo 'System Update' . PHP_EOL;
     echo '-------------' . PHP_EOL;
     echo PHP_EOL;
     if (!isset($this->args[2])) {
         $this->argNotFound('update');
     } else {
         if (!in_array($this->args[2], $this->arguments['update'])) {
             $this->argInvalid('update', $this->args[2]);
         } else {
             $type = $this->args[2];
             $name = isset($this->args[3]) ? $this->args[3] : 'phire';
             $version = null;
             if ($type == 'system') {
                 $version = \Phire\Project::VERSION;
             } else {
                 $ext = Table\Extensions::findBy(array('name' => $name));
                 if (isset($ext->id)) {
                     $assets = unserialize($ext->assets);
                     $version = $assets['info']['Version'];
                 }
             }
             $format = null;
             $formats = \Pop\Archive\Archive::formats();
             if (isset($formats['zip'])) {
                 $format = 'zip';
             } else {
                 if (isset($formats['tar']) && isset($formats['gz'])) {
                     $format = 'tar.gz';
                 }
             }
             $writable = false;
             if ($type == 'system' && is_writable(__DIR__ . '/../../../../')) {
                 $writable = true;
             } else {
                 if ($type == 'module' && is_writable(__DIR__ . '/../../../../../' . CONTENT_PATH . DIRECTORY_SEPARATOR . 'extensions' . DIRECTORY_SEPARATOR . 'modules')) {
                     $writable = true;
                 }
             }
             if ($writable) {
                 $config = new Model\Config();
                 $config->getUpdate(array('type' => $type, 'name' => $name, 'version' => $version, 'format' => $format), true);
                 if (null !== $config->error) {
                     echo '  ' . strip_tags($config->error) . PHP_EOL . PHP_EOL;
                 } else {
                     echo '  ' . strip_tags($config->msg) . PHP_EOL . PHP_EOL;
                 }
             } else {
                 echo '  The ' . $type . ' folder must be writable to perform the update.' . PHP_EOL . PHP_EOL;
             }
         }
     }
 }