Пример #1
0
<?php

/*
 * Manages the cache entries
 *
 **/
/** @var $ctrl \bbn\mvc\controller */
$cache = \bbn\cache::get_engine();
if (isset($ctrl->post['item'], $ctrl->arguments[0])) {
    switch ($ctrl->arguments[0]) {
        case 'info':
            $ctrl->set_title('Content of ' . $ctrl->post['item']);
            if ($cache->has($ctrl->post['item'])) {
                \bbn\x::hdump($cache->get($ctrl->post['item']));
            } else {
                echo '<h3 style="color: red">The item ' . $ctrl->post['item'] . ' doesn\'t exist</h3>';
            }
            break;
        case 'delete':
            $ctrl->obj->success = $cache->delete($ctrl->post['item']);
            break;
    }
} else {
    $ctrl->combo('Cache content (' . \bbn\cache::get_type() . ')', ['root' => $ctrl->say_dir() . '/', 'items' => array_map(function ($a) {
        return ['name' => $a];
    }, $cache->items())]);
}
Пример #2
0
<?php

/** @var $model \bbn\mvc\model */
// DB connection
$db =& $model->data['db'];
if (!empty($db) && !empty($model->data['id_lib'])) {
    // Get all library's versions
    $versions = $db->get_rows("\n    SELECT versions.*, \n      CASE WHEN versions.name = libraries.latest THEN 1 ELSE 0 END AS is_latest\n    FROM versions\n    JOIN libraries\n      ON versions.library = libraries.name\n    WHERE versions.library = ?\n    ORDER BY internal DESC", $model->data['id_lib']);
    foreach ($versions as $i => $ver) {
        // Get all version's dependencies
        $versions[$i]['dependencies'] = $db->get_rows("\n      SELECT libraries.title, libraries.name, versions.name AS version\n      FROM dependencies\n        LEFT JOIN versions\n          ON id_master = versions.id\n        LEFT JOIN libraries\n          ON versions.library = libraries.name\n      WHERE id_slave = ?\n      GROUP BY libraries.title\n      ORDER BY libraries.name", $ver['id']);
        // Get all version's slave dependencies
        $versions[$i]['slave_dependencies'] = $db->get_rows("\n      SELECT libr.name, libr.title, vers.name AS version\n      FROM versions\n      JOIN libraries\n        ON versions.library = libraries.name\n        AND versions.name = libraries.latest\n      JOIN dependencies \n        ON versions.id = dependencies.id_master\n      JOIN versions AS vers\n        ON dependencies.id_slave = vers.id\n      JOIN libraries AS libr\n        ON vers.library = libr.name\n      WHERE versions.id = ?\n      GROUP BY libr.name\n      ORDER BY libr.title COLLATE NOCASE ASC, vers.internal DESC", $ver['id']);
        // Make version's files TreeView
        $versions[$i]['files_tree'] = \bbn\x::make_tree((array) json_decode($ver['content']));
    }
    return $versions;
} else {
    if (!empty($model->data['folder']) && !empty(BBN_CDN_PATH)) {
        // Library path
        $lib_path = BBN_CDN_PATH . 'lib/' . $model->data['folder'];
        // Check if the library's subfolders are already inserted into db and use the first not included as version
        if (is_dir($lib_path) && ($dirs = \bbn\file\dir::get_dirs($lib_path))) {
            $ver = [];
            foreach ($dirs as $dir) {
                if (empty($db->select('versions', [], ['name' => basename($dir), 'library' => $model->data['folder']]))) {
                    array_push($ver, $dir);
                }
            }
            if (empty($ver)) {
                return ['error' => _("All library's versions (subfolders) are existing into database.")];
Пример #3
0
<?php

/** @var $ctrl \bbn\mvc\controller */
//$dir = array_shift($ctrl->arguments);
$url = implode('/', $ctrl->arguments);
$dirs = new \bbn\ide\directories($ctrl->inc->options, $ctrl->get_routes());
$dir = $dirs->dir_from_url($url);
\bbn\x::dump($dir);
\bbn\x::dump($dirs->get());
/*
// Case where it's a new file and we need to provide the tabNav info
if ( $ctrl->baseURL === $ctrl->data['root'].'editor/' ){
  $ctrl->obj->url = $ctrl->get_path().'/'.$url;
  $ctrl->combo(substr($url, strlen($dir)), [
    'root' => $ctrl->data['root'],
    'baseURL' => $ctrl->obj->url.'/',
    'file' => $url
  ]);
}
// Case where the tabnav is already loaded and we just provide the data
else{
  $dirs = new \bbn\ide\directories($ctrl->inc->options, $ctrl->get_routes());
  // Case where it's a new file and we need to provide the tabNav info
  if ( strpos($url, $ctrl->baseURL) === false ){
    if ( $dir = $dirs->dir_from_url($url) ){
      $info = $dirs->dir($dir);
      if ( empty($info['tabs']) ){

      }
      else{
        $tab = array_pop($ctrl->arguments);
Пример #4
0
<?php

/* @var $ctrl \bbn\mvc */
echo $ctrl->set_title("Error logs Analysis")->add_js(\bbn\x::merge_arrays($ctrl->get_model(), ['root' => $ctrl->say_dir() . '/']))->get_view();
Пример #5
0
<?php

/** @var $ctrl \bbn\mvc\controller */
//die(\bbn\x::dump($ctrl->data));
if ($ctrl->obj->data = $ctrl->get_model(\bbn\x::merge_arrays($ctrl->data, $ctrl->post))) {
    if (!empty($ctrl->obj->data['error'])) {
        $ctrl->obj->error = $ctrl->obj->data['error'];
    } else {
        if (!empty($ctrl->obj->data['def'])) {
            //$ctrl->obj->url = $ctrl->obj->data['url'].'/'.$ctrl->obj->data['def'];
        } else {
            //$ctrl->obj->url = $ctrl->obj->data['url'];
        }
        $list = $ctrl->inc->session->get('ide', 'list');
        if (!in_array($ctrl->obj->data['url'], $list)) {
            array_push($list, $ctrl->obj->data['url']);
            $ctrl->inc->session->set($list, 'ide', 'list');
        }
    }
}
Пример #6
0
<?php

if (isset($ctrl->post['session'])) {
    echo \bbn\x::make_tree($ctrl->inc->session->get()) . '<p> </p><hr><p> </p>' . \bbn\x::make_tree($_SERVER);
} else {
    $ctrl->set_title('Infos Session');
    echo '<h2><button class="k-button"
onclick="appui.fn.post(\'' . $ctrl->say_dir() . '/session\',
{session:1},
$(\'#info_session_container\'));"><i class="fa fa-refresh"> </i></button> &nbsp; &nbsp; &nbsp; Infos de session</h2>' . '<div
class="appui-line-break">' . '</div>' . '<div id="info_session_container" class="appui-nl"> </div>';
    $ctrl->add_script("appui.fn.post('" . $ctrl->say_dir() . "/session', {session:1}, \$('#info_session_container'));");
}