2 require_once('env.inc.php');
3 require_once('pre.php');
4 require_once('preplugins.php');
5 require_once('plugins_utils.php');
6 require_once('common/widget/Widget.class.php');
7 require_once('common/widget/WidgetLayoutManager.class.php');
8 require_once('common/widget/Valid_Widget.class.php');
10 $lm = new WidgetLayoutManager();
12 $request =& HTTPRequest::instance();
15 $vOwner = new Valid_Widget_Owner('owner');
17 if ($request->valid($vOwner)) {
18 $owner = $request->get('owner');
19 $owner_id = (int)substr($owner, 1);
20 $owner_type = substr($owner, 0, 1);
22 case WidgetLayoutManager::OWNER_TYPE_USER:
23 $owner_id = user_getid();
27 case WidgetLayoutManager::OWNER_TYPE_GROUP:
28 $pm = ProjectManager::instance();
29 if ($project = $pm->getProject($owner_id)) {
30 $group_id = $owner_id;
31 $_REQUEST['group_id'] = $_GET['group_id'] = $group_id;
32 $request->params['group_id'] = $group_id; //bad!
33 $redirect = '/projects/'. $project->getUnixName();
41 if ($request->exist('name')) {
42 $param = $request->get('name');
43 $name = array_pop(array_keys($param));
44 $instance_id = (int)$param[$name];
45 if ($widget =& Widget::getInstance($name)) {
46 if ($widget->isAvailable()) {
47 switch ($request->get('action')) {
49 $widget->displayRss();
53 if ($layout_id = (int)$request->get('layout_id')) {
54 if ($owner_type == WidgetLayoutManager::OWNER_TYPE_USER || user_ismember($group_id, 'A') || user_is_super_user()) {
55 if ($request->get('cancel') || $widget->updatePreferences($request)) {
56 $lm->hideWidgetPreferences($owner_id, $owner_type, $layout_id, $name, $instance_id);
62 if ($widget->isAjax()) {
63 $widget->loadContent($instance_id);
64 echo $widget->getContent();
70 $GLOBALS['HTML']->displayStylesheetElements();
71 echo '</head><body class="main_body_row contenttable">';
72 $widget->loadContent($instance_id);
73 echo $widget->getContent();
74 echo '</body></html>';
78 $widget->loadContent($instance_id);
79 $widget->process($owner_type, $owner_id);
89 if (!$request->isAjax()) {
90 htmlRedirect($redirect);