コード例 #1
0
 function __construct($name, $value, $valueTable, $valueField = 'nefub_id', array $where = array(), $orderBy = 'name', $direction = 'ASC', $limit = null)
 {
     parent::__construct($name, (int) $value);
     $rows = Database::select_rows($valueTable, $where, $orderBy, $limit, $direction);
     $this->addOption('Geen', 0);
     foreach ($rows as $row) {
         $this->addOption($row['name'], $row[$valueField]);
     }
 }
コード例 #2
0
function main($path)
{
    $db = new Database();
    if (!$db->connect()) {
        exit_with_error('DatabaseConnectionFailure');
    }
    if (count($path) > 1) {
        exit_with_error('InvalidRequest');
    }
    $build_requests_fetcher = new BuildRequestsFetcher($db);
    if (count($path) > 0 && $path[0]) {
        $group_id = intval($path[0]);
        $group = $db->select_first_row('analysis_test_groups', 'testgroup', array('id' => $group_id));
        if (!$group) {
            exit_with_error('GroupNotFound', array('id' => $group_id));
        }
        $test_groups = array($group);
        $build_requests_fetcher->fetch_for_group($group_id);
    } else {
        $task_id = array_get($_GET, 'task');
        if (!$task_id) {
            exit_with_error('TaskIdNotSpecified');
        }
        $test_groups = $db->select_rows('analysis_test_groups', 'testgroup', array('task' => $task_id));
        if (!is_array($test_groups)) {
            exit_with_error('FailedToFetchTestGroups');
        }
        $build_requests_fetcher->fetch_for_task($task_id);
    }
    if (!$build_requests_fetcher->has_results()) {
        exit_with_error('FailedToFetchBuildRequests');
    }
    $test_groups = array_map("format_test_group", $test_groups);
    $group_by_id = array();
    foreach ($test_groups as &$group) {
        $group_id = $group['id'];
        $group_by_id[$group_id] =& $group;
        $platforms = $db->query_and_fetch_all('SELECT DISTINCT(config_platform)
            FROM test_configurations, test_runs, build_requests
            WHERE run_config = config_id AND run_build = request_build AND request_group = $1', array($group_id));
        if ($platforms) {
            $group['platform'] = $platforms[0]['config_platform'];
        }
    }
    $build_requests = $build_requests_fetcher->results();
    foreach ($build_requests as $request) {
        $request_group =& $group_by_id[$request['testGroup']];
        array_push($request_group['buildRequests'], $request['id']);
        array_push($request_group['rootSets'], $request['rootSet']);
    }
    exit_with_success(array('testGroups' => $test_groups, 'buildRequests' => $build_requests, 'rootSets' => $build_requests_fetcher->root_sets(), 'roots' => $build_requests_fetcher->roots()));
}
コード例 #3
0
function main($path)
{
    $db = new Database();
    if (!$db->connect()) {
        exit_with_error('DatabaseConnectionFailure');
    }
    if (count($path) > 1) {
        exit_with_error('InvalidRequest');
    }
    $build_request_id = array_get($_GET, 'buildRequest');
    $task_id = count($path) > 0 && $path[0] ? $path[0] : array_get($_GET, 'id');
    if ($build_request_id) {
        $tasks = $db->query_and_fetch_all('SELECT analysis_tasks.* FROM build_requests, analysis_test_groups, analysis_tasks
            WHERE request_id = $1 AND request_group = testgroup_id AND testgroup_task = task_id', array(intval($build_request_id)));
        if (!$tasks) {
            exit_with_error('TaskNotFound', array('buildRequest' => $build_request_id));
        }
    } else {
        if ($task_id) {
            $task_id = intval($task_id);
            $task = $db->select_first_row('analysis_tasks', 'task', array('id' => $task_id));
            if (!$task) {
                exit_with_error('TaskNotFound', array('id' => $task_id));
            }
            $tasks = array($task);
        } else {
            $metric_id = array_get($_GET, 'metric');
            $platform_id = array_get($_GET, 'platform');
            if (!!$metric_id != !!$platform_id) {
                exit_with_error('InvalidArguments', array('metricId' => $metric_id, 'platformId' => $platform_id));
            }
            if ($metric_id) {
                $tasks = $db->select_rows('analysis_tasks', 'task', array('platform' => $platform_id, 'metric' => $metric_id));
            } else {
                // FIXME: Limit the number of tasks we fetch.
                $tasks = array_reverse($db->fetch_table('analysis_tasks', 'task_created_at'));
            }
            if (!is_array($tasks)) {
                exit_with_error('FailedToFetchTasks');
            }
        }
    }
    $tasks = array_map("format_task", $tasks);
    $bugs = fetch_and_push_bugs_to_tasks($db, $tasks);
    exit_with_success(array('analysisTasks' => $tasks, 'bugs' => $bugs));
}
コード例 #4
0
ファイル: Model.php プロジェクト: rjpijpker/nefub-mobile
 /**
  * 
  * @param string $class
  * @param array $where
  * @param string $orderBy
  * @param string $dir
  * @return Model[]
  */
 public static function getAllModels($class, $where = array(), $orderBy = null, $dir = 'ASC', $limit = 0)
 {
     $rows = Database::select_rows($class, $where, $orderBy, $dir, $limit);
     $instances = array();
     foreach ($rows as $row) {
         $instances[] = new $class($row['id']);
     }
     return $instances;
 }
コード例 #5
0
ファイル: pages.php プロジェクト: JakeCoxon/Pages
$pages_dir = "/p/";
// Merge $_GET and $_POST, latter has precedence.
$request = array_merge($_GET, $_POST);
// Page is requested page or default to home
$page = $request["page"] or $page = "home";
// Set $action to one of edit, view, rename, delete, if exists in query string
$action = reset(array_intersect(array_keys($request), explode(",", "edit,view,rename,delete")));
// Connect to main database
$db = new Database($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, true);
// Set up base array. Fill out later for current page.
$page_array = array("isspecial" => false, "isreal" => false, "slug" => $page, "title" => "", "body" => "", "html" => "", "excerpt" => "", "lastupdate" => 0, "created" => 0, "isblog" => false, "tags" => array(), "childs" => array(), "blogposts" => array());
$message = array();
/// Special Pages ///////////////////
if ($page == "all") {
    // Get all pages and merge special data with page array
    $page_array = array_merge($page_array, array("isspecial" => true, "title" => "All pages", "html" => "", "childs" => $db->select_rows("SELECT slug,title,excerpt FROM pages ORDER BY title ASC")));
} else {
    if ($page == "blog") {
        $blogs = $db->select_rows("SELECT slug,title,body,excerpt,created FROM blog ORDER BY created DESC");
        $page_array = array_merge(array_merge($page_array, array_shift($blogs)), array("isblog" => true, "isspecial" => true, "blogposts" => $blogs));
    }
}
/// Regular Pages ///////////////////
if (!$page_array["isspecial"]) {
    $page_array["isblog"] = is_blog($page);
    $page_escape = mysql_real_escape_string($page);
    $table = $page_array["isblog"] ? "blog" : "pages";
    // Merge with $page_array
    if ($newarray = $db->select_row("SELECT * FROM {$table} WHERE slug='{$page_escape}' LIMIT 1")) {
        $page_array = array_merge($page_array, $newarray);
    }