Esempio n. 1
0
<?php

/*
 * Describe what it does to show you're not that dumb!
 *
 **/
/** @var $ctrl \bbn\mvc\controller */
if (isset($ctrl->arguments[0])) {
    $ctrl->set_mode("image");
    $is_tmp = false;
    if ($ctrl->arguments[0] === 'tmp' && \bbn\str::is_integer($ctrl->arguments[1])) {
        array_shift($ctrl->arguments);
        $is_tmp = 1;
        $path = BBN_USER_PATH . 'tmp/' . array_shift($ctrl->arguments) . '/';
    }
    if (isset($path)) {
        $file = $path . implode("/", $ctrl->arguments);
        $ctrl->obj->img = $file;
        //die();
        //die(var_dump($file, is_file($file)));
        //die(var_dump($ctrl->mvc));
    }
}
Esempio n. 2
0
   foreach (json_decode($model->data['languages'], 1) as $l) {
       array_push($languages, $l['path']);
   }
   foreach (json_decode($model->data['themes'], 1) as $l) {
       array_push($themes, $l['path']);
   }
   $content = ['files' => !empty($model->data['files']) ? json_decode($model->data['files'], 1) : [], 'lang' => $languages, 'theme_files' => $themes];
   if (!empty($model->data['latest'])) {
       $internal = $db->get_one("\n    SELECT MAX(internal)\n    FROM versions\n    WHERE library = ?", $model->data['name']);
       if (is_null($internal)) {
           $internal = 0;
       } else {
           $internal++;
       }
   } else {
       if (isset($model->data['internal']) && \bbn\str::is_integer($model->data['internal'])) {
           $internal = $model->data['internal'];
           if ($db->select_one('versions', 'internal', ['internal' => $internal])) {
               $db->query("\n      UPDATE versions SET internal = internal+1\n      WHERE internal >= ?\n        AND library = ?", $internal, $model->data['name']);
           }
       }
   }
   if ($db->insert('versions', ['name' => $model->data['vname'], 'library' => $model->data['name'], 'content' => json_encode($content), 'date_added' => date('Y-m-d H:i:s', time()), 'internal' => $internal])) {
       $id = $db->last_id();
       if (!empty($model->data['dependencies'])) {
           foreach ($model->data['dependencies'] as $dep) {
               if ($db->select_one('dependencies', 'order', ['order' => $dep['order']])) {
                   $db->query('
 UPDATE "dependencies" SET "order" = "order"+1
 WHERE "order" >= ?
   AND "id_slave" = ?', $dep['order'], $id);
Esempio n. 3
0
 **/
/** @var $ctrl \bbn\mvc\controller */
if (!isset($ctrl->arguments[0])) {
    $id_perm = $ctrl->inc->perm->get_option_root();
    $perm =& $ctrl->inc->perm;
    $ctrl->add_data(['cat' => $id_perm, 'lng' => ['refresh_all_permissions' => _("Refresh all permissions"), 'confirm_update_permissions' => _("Are you sure you wanna update all permissions? It might take a while..."), 'total_updated' => _("A total of {0} permissions has been added"), 'no_permission_updated' => _("No permission has been added")], 'tree' => $ctrl->inc->options->map(function ($r) use($perm) {
        if (empty($r['icon'])) {
            if (substr($r['code'], -1) === '/') {
                $r['icon'] = 'fa fa-folder';
            } else {
                $r['icon'] = 'fa fa-file';
            }
        }
        if ($perm->has($r['id'])) {
            $o = ['id' => $r['id'], 'text' => $r['text'], 'code' => $r['code'], 'icon' => $r['icon'], 'is_parent' => empty($r['num_children']) ? false : true];
            if ($o['is_parent']) {
                $o['items'] = $r['items'];
            }
            return $o;
        }
    }, $id_perm, true)]);
    $ctrl->combo(_("Permissions"), $ctrl->data);
} else {
    if (\bbn\str::is_integer($ctrl->arguments[0])) {
        $ctrl->add_data(['id' => $ctrl->arguments[0], 'full' => isset($ctrl->post['full']) ? $ctrl->post['full'] : false, 'routes' => $ctrl->get_routes()]);
        $ctrl->obj->data = $ctrl->get_model();
    } else {
        $ctrl->add_data(['action' => $ctrl->arguments[0]], $ctrl->post);
        $ctrl->obj->data = $ctrl->get_model();
    }
}
Esempio n. 4
0
<?php

/*
 * Describe what it does to show you're not that dumb!
 *
 **/
/** @var $ctrl \bbn\mvc\controller */
if (isset($ctrl->files['file'], $ctrl->arguments[0]) && \bbn\str::is_integer($ctrl->arguments[0])) {
    $f =& $ctrl->files['file'];
    $path = BBN_USER_PATH . 'tmp/' . $ctrl->arguments[0];
    $new = \bbn\str::encode_filename($f['name'], \bbn\str::file_ext($f['name']));
    $file = $path . '/' . $new;
    if (\bbn\file\dir::create_path($path) && move_uploaded_file($f['tmp_name'], $file)) {
        $tmp = \bbn\str::file_ext($new, 1);
        $fname = $tmp[0];
        $ext = $tmp[1];
        $ctrl->obj->success = 1;
        $archives = ['zip', 'rar', 'tar', 'gzip', 'iso'];
        $images = ['jpg', 'gif', 'jpeg', 'png', 'svg'];
        $files = [basename($file)];
        if (in_array($ext, $archives)) {
            $archive = \wapmorgan\UnifiedArchive\UnifiedArchive::open($file);
            \bbn\file\dir::create_path($path . '/' . $fname);
            if ($num = $archive->extractNode($path . '/' . $fname, '/')) {
                $tmp = getcwd();
                chdir($path);
                $all = \bbn\file\dir::scan($fname, 'file');
                foreach ($all as $a) {
                    array_push($files, $a);
                }
                chdir($tmp);
Esempio n. 5
0
    return substr($a, -3) === 'log';
});
if (($log_file = ini_get('error_log')) && strpos($log_file, BBN_DATA_PATH . 'logs') === false) {
    array_unshift($log_files, $log_file);
}
$res = [];
foreach ($log_files as $lf) {
    $res[basename($lf)] = $lf;
}
ksort($res);
if (isset($model->data['log'])) {
    $output = [];
    if ($model->data['clear']) {
        file_put_contents($res[$model->data['log']], '');
    } else {
        $file = escapeshellarg($res[$model->data['log']]);
        // for the security concious (should be everyone!)
        $num_lines = isset($model->data['num_lines']) && \bbn\str::is_integer($model->data['num_lines']) && $model->data['num_lines'] > 0 && $model->data['num_lines'] <= 1000 ? $model->data['num_lines'] : 100;
        $line = "tail -n {$num_lines} {$file}";
        exec($line, $output);
        $res = [];
        $pid = 0;
    }
    return ['content' => implode("\n", $output)];
} else {
    $data = ['logs' => []];
    foreach ($res as $k => $v) {
        array_push($data['logs'], ['text' => $k]);
    }
    return $data;
}
Esempio n. 6
0
<?php

/* @var $ctrl \bbn\mvc */
if (isset($ctrl->post['log'])) {
    $ctrl->data['log'] = $ctrl->post['log'];
    $ctrl->data['clear'] = !empty($ctrl->post['clear']);
    $ctrl->data['num_lines'] = isset($ctrl->post['num_lines']) && \bbn\str::is_integer($ctrl->post['num_lines']) ? $ctrl->post['num_lines'] : 100;
    $ctrl->obj = $ctrl->get_object_model();
} else {
    echo $ctrl->combo("Log files", ['root' => $ctrl->say_dir() . '/']);
}
Esempio n. 7
0
 $ln = 'bbn-ide-error_log-';
 $res = [];
 $lines = file($file);
 foreach ($lines as $o) {
     preg_match_all('/\\[([^\\]]+)\\]/', $o, $r);
     if (isset($r[1][0])) {
         if ($pos_mill = strpos($r[1][0], '.')) {
             $r[1][0] = substr($r[1][0], 0, $pos_mill) . substr($r[1][0], strpos($r[1][0], ' ', $pos_mill));
         }
         if (strpos($o, ' PHP ') && ($d = date_parse($r[1][0]))) {
             $php = strpos($o, ' PHP ') + 5;
             $coma = strrpos($o, ',');
             $reste = trim(substr($o, $php, $coma - $php));
             $time = mktime($d['hour'], $d['minute'], $d['second'], $d['month'], $d['day'], $d['year']);
             // Trace
             if (\bbn\str::is_integer(substr($reste, 0, 1))) {
                 if (isset($cur)) {
                     $idx = intval(trim(substr($reste, 0, strpos($reste, '.'))));
                     if ($idx === 1) {
                         $res[$cur]['trace'] = [];
                     }
                     $res[$cur]['trace'][$idx - 1] = ['index' => $idx, 'text' => trim(substr($reste, strpos($reste, '.') + 1))];
                 }
             } else {
                 if (strpos($reste, 'Stack trace:') === 0) {
                 } else {
                     if (isset($res[$reste])) {
                         $res[$reste]['count']++;
                         $res[$reste]['last_date'] = date('Y-m-d H:i:s', $time);
                     } else {
                         $cur = $reste;