/** * PopulateProjects * * Populates the internal list of projects * * @access protected * @throws Exception if file cannot be read */ protected function PopulateProjects() { $projectRoot = GitPHP_Util::AddSlash(GitPHP_Config::GetInstance()->GetValue('projectroot')); foreach ($this->projectConfig as $cat => $plist) { if (is_array($plist)) { foreach ($plist as $pname => $ppath) { try { $projObj = new GitPHP_Project($projectRoot, $ppath); if ($cat != GITPHP_NO_CATEGORY) { $projObj->SetCategory($cat); } $this->projects[$ppath] = $projObj; } catch (Exception $e) { GitPHP_Log::GetInstance()->Log($e->getMessage()); } } } } }
/** * AddProject * * Add project to collection * * @access private */ private function AddProject($projectPath) { try { $proj = new GitPHP_Project($this->projectDir, $projectPath); $category = trim(dirname($projectPath)); if (!(empty($category) || strpos($category, '.') === 0)) { $proj->SetCategory($category); } if (!GitPHP_Config::GetInstance()->GetValue('exportedonly', false) || $proj->GetDaemonEnabled()) { $this->projects[$projectPath] = $proj; } } catch (Exception $e) { GitPHP_Log::GetInstance()->Log($e->getMessage()); } }
/** * Loads a project * * @param string $proj project * @return GitPHP_Project project */ protected function LoadProject($proj) { try { $project = new GitPHP_Project($this->projectRoot, $proj); $category = trim(dirname($proj)); if (!(empty($category) || strpos($category, '.') === 0)) { $project->SetCategory($category); } if ($this->exportedOnly && !$project->GetDaemonEnabled()) { $this->Log('Project export disabled', $project->GetPath()); return null; } $this->ApplyGlobalConfig($project); $this->ApplyGitConfig($project); if ($this->projectSettings && isset($this->projectSettings[$proj])) { $this->ApplyProjectSettings($project, $this->projectSettings[$proj]); } $this->InjectProjectDependencies($project); return $project; } catch (Exception $e) { $this->Log('Project error', $e->getMessage()); } return null; }
/** * Applies override settings for a project * * @param GitPHP_Project $project the project object * @param array $projData project data array */ protected function ApplyProjectSettings($project, $projData) { if (!$project) { return; } if (isset($projData['category']) && is_string($projData['category'])) { $project->SetCategory($projData['category']); } if (isset($projData['owner']) && is_string($projData['owner'])) { $project->SetOwner($projData['owner']); } if (isset($projData['description']) && is_string($projData['description'])) { $project->SetDescription($projData['description']); } if (isset($projData['cloneurl']) && is_string($projData['cloneurl'])) { $project->SetCloneUrl($projData['cloneurl']); } if (isset($projData['pushurl']) && is_string($projData['pushurl'])) { $project->SetPushUrl($projData['pushurl']); } if (isset($projData['bugpattern']) && is_string($projData['bugpattern'])) { $project->SetBugPattern($projData['bugpattern']); } if (isset($projData['bugurl']) && is_string($projData['bugurl'])) { $project->SetBugUrl($projData['bugurl']); } if (isset($projData['compat'])) { $project->SetCompat($projData['compat']); } if (isset($projData['website']) && is_string($projData['website'])) { $project->SetWebsite($projData['website']); } if (!empty($projData['allowedusers'])) { $project->SetAllowedUsers($projData['allowedusers']); } }