| {␊ | 
| public $_model = __CLASS__;␊ | 
| public $_extra_cache = array();␊ | 
| protected $_pconf = null;␊ | 
| ␊ | 
| function init()␊ | 
| {␊ | 
| $this->_pconf = null;␊ | 
| $this->_extra_cache = array();␊ | 
| $this->_a['table'] = 'idf_projects';␊ | 
| $this->_a['model'] = __CLASS__;␊ | 
|  | 
| return '';␊ | 
| }␊ | 
| ␊ | 
| ␊ | 
| ␊ | 
| function preSave($create=false)␊ | 
| {␊ | 
| if ($this->id == '') {␊ | 
|  | 
| */␊ | 
| public function getTagsFromConfig($cfg_key, $default, $dclass='Other')␊ | 
| {␊ | 
| $conf = new IDF_Conf();␊ | 
| $conf->setProject($this);␊ | 
| $conf = $this->getConf();␊ | 
| $tags = array();␊ | 
| foreach (preg_split("/\015\012|\015|\012/", $conf->getVal($cfg_key, $default), -1, PREG_SPLIT_NO_EMPTY) as $s) {␊ | 
| $_s = split('=', $s, 2);␊ | 
|  | 
| }␊ | 
| ␊ | 
| /**␊ | 
| * Get the path to the git repository.␊ | 
| * Get the remote access url to the repository.␊ | 
| *␊ | 
| * @return string Path to the git repository␊ | 
| */␊ | 
| public function getGitRepository()␊ | 
| public function getRemoteAccessUrl()␊ | 
| {␊ | 
| $gitrep = Pluf::f('git_repository');␊ | 
| if (substr($gitrep, -4) == '.git') {␊ | 
| return $gitrep;␊ | 
| }␊ | 
| // here we consider that the git_repository is a folder␊ | 
| // containing a series of git repositories␊ | 
| return $gitrep.'/'.$this->shortname.'.git';␊ | 
| }␊ | 
| ␊ | 
| /**␊ | 
| * Get the url to the repository through git daemon.␊ | 
| *␊ | 
| * @return string Path to the git daemon.␊ | 
| */␊ | 
| public function getGitDaemonUrl()␊ | 
| {␊ | 
| $gitrep = Pluf::f('git_daemon_url');␊ | 
| if (substr($gitrep, -4) == '.git') {␊ | 
| return $gitrep;␊ | 
| }␊ | 
| // here we consider that the git_repository is a folder␊ | 
| // containing a series of git repositories␊ | 
| return $gitrep.'/'.$this->shortname.'.git';␊ | 
| }␊ | 
| ␊ | 
| /**␊ | 
| * Get the path to the git repository.␊ | 
| *␊ | 
| * @return string Path to the git repository␊ | 
| */␊ | 
| public function getSvnDaemonUrl()␊ | 
| {␊ | 
| $conf = new IDF_Conf();␊ | 
| $conf->setProject($this);␊ | 
| ␊ | 
| return $conf->getVal('svn_daemon_url');␊ | 
| $conf = $this->getConf();␊ | 
| $scm = $conf->getVal('scm', 'git');␊ | 
| $scms = Pluf::f('allowed_scm');␊ | 
| return call_user_func(array($scms[$scm], 'getRemoteAccessUrl'),␊ | 
| $this);␊ | 
| }␊ | 
| ␊ | 
| ␊ | 
| /**␊ | 
| * Get the root name of the project scm␊ | 
| *␊ | 
|  | 
| */␊ | 
| public function getScmRoot()␊ | 
| {␊ | 
| $conf = $this->getConf();␊ | 
| $roots = array('git' => 'master', 'svn' => 'HEAD');␊ | 
| $conf = new IDF_Conf();␊ | 
| $conf->setProject($this);␊ | 
| $scm = $conf->getVal('scm', 'git');␊ | 
| return $roots[$scm];␊ | 
| }␊ | 
|  | 
| throw new Pluf_HTTP_Error404();␊ | 
| }␊ | 
| }␊ | 
| ␊ | 
| /**␊ | 
| * Utility function to get a configuration object.␊ | 
| *␊ | 
| * @return IDF_Conf␊ | 
| */␊ | 
| public function getConf()␊ | 
| {␊ | 
| if ($this->_pconf == null) {␊ | 
| $this->_pconf = new IDF_Conf();␊ | 
| $this->_pconf->setProject($this);␊ | 
| }␊ | 
| return $this->_pconf;␊ | 
| }␊ | 
| ␊ | 
| } |