conf = new IDF_Gconf(); $this->conf->setModel($this); } public static function instance() { return new IDF_Forge(); } public function getProjectLabels($default = '') { return $this->conf->getVal('project_labels', $default); } public function setProjectLabels($labels) { $this->conf->setVal('project_labels', $labels); } public function getProjectLabelsWithCounts() { $sql = new Pluf_SQL('project=0'); $tagList = Pluf::factory('IDF_Tag')->getList(array( 'filter' => $sql->gen(), 'view' => 'join_projects', 'order' => 'class ASC, lcname ASC' )); $maxProjectCount = 0; foreach ($tagList as $tag) { $maxProjectCount = max($maxProjectCount, $tag->project_count); } $tags = array(); foreach ($tagList as $tag) { // group by class if (!array_key_exists($tag->class, $tags)) { $tags[$tag->class] = array(); } $tag->rel_project_count = $tag->project_count / (double) $maxProjectCount; $tags[$tag->class][] = $tag; } return $tags; } public function setCustomForgePageEnabled($enabled) { $this->conf->setVal('custom_forge_page_enabled', $enabled); } public function isCustomForgePageEnabled($default = false) { return $this->conf->getVal('custom_forge_page_enabled', $default); } public function getCustomForgePageContent($default = '') { return $this->conf->getVal('custom_forge_page_content', $default); } public function setCustomForgePageContent($content) { $this->conf->setVal('custom_forge_page_content', $content); } }