File: extsubproj_Widget_SubProjects.class.php

package info (click to toggle)
fusionforge 5.3.2%2B20141104-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 60,472 kB
  • sloc: php: 271,846; sql: 36,817; python: 14,575; perl: 6,406; sh: 5,980; xml: 4,294; pascal: 1,411; makefile: 911; cpp: 52; awk: 27
file content (113 lines) | stat: -rw-r--r-- 3,244 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
/**
 * Copyright 2011, Olivier Berger - Institut Telecom
 * http://fusionforge.org
 *
 * This file is part of FusionForge. FusionForge is free software;
 * you can redistribute it and/or modify it under the terms of the
 * GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the Licence, or (at your option)
 * any later version.
 *
 * FusionForge is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with FusionForge; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
require_once 'common/widget/Widget.class.php';
require_once 'common/widget/WidgetLayoutManager.class.php';

class extsubproj_Widget_SubProjects extends Widget {
	function extsubproj_Widget_SubProjects($owner_type, $plugin) {
		$this->plugin = $plugin;
		$this->Widget('plugin_extsubproj_project_subprojects');
	}

	function getTitle() {
		return _("Project external subprojects");
	}

	function getCategory() {
		return _('General');
	}

	function getDescription() {
		return _("Displays links to external subprojects of the project");
	}

	function getContent() {
		global $pluginExtSubProj;
		global $group_id;
		global $HTML;

		$subProjects = $this->plugin->getSubProjects($group_id);

		$html='';
		if(is_array($subProjects)) {
			$tablearr = array(_('Subprojects'),'');
			$html .= $HTML->listTableTop($tablearr);

			foreach ($subProjects as $url) {

				include_once 'arc/ARC2.php';
				require_once 'plugins/extsubproj/include/Graphite.php';

				$reader = ARC2::getComponent('Reader');

				$parser = ARC2::getRDFParser();

				$reader->setAcceptHeader('Accept: application/rdf+xml');
				$parser->setReader($reader);

				//$parser->parse('https://vm2.localdomain/projects/coinsuper/');
				$parser->parse($url);

				if(! $parser->reader->errors) {
					//print_r($parser);
					$triples = $parser->getTriples();
					//print_r($triples);
					$turtle = $parser->toTurtle($triples);
					$datauri = $parser->toDataURI($turtle);

					$graph = new Graphite();
					//$graph->setDebug(1);
					$graph->ns( "doap", "http://usefulinc.com/ns/doap#" );
					$graph->load( $datauri );
					//print $graph->resource('https://vm2.localdomain/projects/coinsuper/')->dumpText();
					$projname = $graph->resource( $url )->get( "doap:name" );
				}
				else {
					/*
					foreach ($parser->reader->errors as $error) {
						$html .= $error;
					}
					*/
					$projname = $url;
				}

				//@TODO: check plugin compactpreview is installed through the right functions...
				require_once 'plugins/compactpreview/include/CompactResource.class.php';
				$params = array('name' => $projname,
								'url' => $url);

				$cR = new OslcGroupCompactResource($params);

 				$html = $html . '
 				<tr>
 					<td>';
//<a href="'.$url.'">'.$projname.'</a>
				$html .= $cR->getResourceLink();
				$html = $html . '</td>
 				</tr>';
			}

			$html .= $HTML->listTableBottom();
		}

		return $html;
	}
}