Plugin($id) ; $this->name = "doaprdf"; $this->text = "DoaPRDF!"; // To show in the tabs, use... //$this->_addHook("user_personal_links");//to make a link to the user's personal part of the plugin //$this->_addHook("usermenu"); //$this->_addHook("groupmenu"); // To put into the project tabs //$this->_addHook("groupisactivecheckbox"); // The "use ..." checkbox in editgroupinfo //$this->_addHook("groupisactivecheckboxpost"); // //$this->_addHook("userisactivecheckbox"); // The "use ..." checkbox in user account //$this->_addHook("userisactivecheckboxpost"); // //$this->_addHook("project_admin_plugins"); // to show up in the admin page fro group $this->_addHook("script_accepted_types"); $this->_addHook("content_negociated_project_home"); } /* function CallHook ($hookname, &$params) { global $use_doaprdfplugin,$G_SESSION,$HTML; if ($hookname == "usermenu") { $text = $this->text; // this is what shows in the tab if ($G_SESSION->usesPlugin("doaprdf")) { $param = '?type=user&id=' . $G_SESSION->getId() . "&pluginname=" . $this->name; // we indicate the part we're calling is the user one echo ' | ' . $HTML->PrintSubMenu (array ($text), array ('/plugins/doaprdf/index.php' . $param )); } } elseif ($hookname == "groupmenu") { $group_id=$params['group']; $project = &group_get_object($group_id); if (!$project || !is_object($project)) { return; } if ($project->isError()) { return; } if (!$project->isProject()) { return; } if ( $project->usesPlugin ( $this->name ) ) { $params['TITLES'][]=$this->text; $params['DIRS'][]=util_make_url ('/plugins/doaprdf/index.php?type=group&id=' . $group_id . "&pluginname=" . $this->name) ; // we indicate the part we're calling is the project one } else { $params['TITLES'][]=$this->text." is [Off]"; $params['DIRS'][]=''; } (($params['toptab'] == $this->name) ? $params['selected']=(count($params['TITLES'])-1) : '' ); } elseif ($hookname == "groupisactivecheckbox") { //Check if the group is active // this code creates the checkbox in the project edit public info page to activate/deactivate the plugin $group_id=$params['group']; $group = &group_get_object($group_id); echo "
' ; echo util_make_link ("/plugins/doaprdf/index.php?id=$userid&type=user&pluginname=".$this->name, _('View Personal DoaPRDF') ); echo '
'; } } elseif ($hookname == "project_admin_plugins") { // this displays the link in the project admin options page to it's DoaPRDF administration $group_id = $params['group_id']; $group = &group_get_object($group_id); if ( $group->usesPlugin ( $this->name ) ) { echo ''.util_make_link ("/plugins/doaprdf/admin/index.php?id=".$group->getID().'&type=admin&pluginname='.$this->name, _('DoaPRDF Admin')).'
' ; } } elseif ($hookname == "blahblahblah") { // ... } } */ /** * Declares itself as accepting RDF XML on /users * @param unknown_type $params */ function script_accepted_types (&$params) { $script = $params['script']; if ($script == 'project_home') { $params['accepted_types'][] = 'application/rdf+xml'; } } /** * Outputs user's FOAF profile * @param unknown_type $params */ function content_negociated_project_home (&$params) { global $group_id; $projectname = $params['groupname']; $accept = $params['accept']; if($accept == 'application/rdf+xml') { $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); $project_description = $project->getDescription(); $tags_list = NULL; if (forge_get_config('use_project_tags')) { $group = group_get_object($group_id); $tags_list = $group->getTags(); } $params['content_type'] = 'application/rdf+xml'; // invoke the 'project_rdf_metadata' hook so as to complement the RDF description // Invoke plugins' hooks 'script_accepted_types' to discover which alternate content types they would accept for /users/... $hook_params = array(); $hook_params['prefixes'] = array( 'http://www.w3.org/1999/02/22-rdf-syntax-ns#' => 'rdf', 'http://www.w3.org/2000/01/rdf-schema#' => 'rdfs', 'http://usefulinc.com/ns/doap#' => 'doap', 'http://purl.org/dc/terms/' => 'dcterms' ); $hook_params['xml'] = array(); plugin_hook_by_reference('project_rdf_metadata', $hook_params); $xml = '