1<?php
2
3/* Copyright (c) 1998-2015 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5/**
6 * Factory for user action providers
7 *
8 * @author Alex Killing <alex.killing@gmx.de>
9 * @version $Id$
10 * @ingroup ServicesUser
11 */
12class ilUserActionProviderFactory
13{
14    protected static $providers = array(
15        array(
16            "component" => "Services/Contact/BuddySystem",
17            "class" => "ilContactUserActionProvider"
18        ),
19        array(
20            "component" => "Services/User/Actions",
21            "class" => "ilMailUserActionProvider"
22        ),
23        array(
24            "component" => "Services/User/Actions",
25            "class" => "ilUserUserActionProvider"
26        ),
27        array(
28            "component" => "Services/User/Actions",
29            "class" => "ilWorkspaceUserActionProvider"
30        ),
31        array(
32            "component" => "Services/User/Actions",
33            "class" => "ilChatUserActionProvider"
34        ),
35        array(
36            "component" => "Modules/Group/UserActions",
37            "class" => "ilGroupUserActionProvider"
38        )
39
40    );
41
42    /**
43     * Get all action providers
44     *
45     * @return ilUserActionProvider[] all providers
46     */
47    public static function getAllProviders()
48    {
49        $providers = array();
50
51        foreach (self::$providers as $p) {
52            $dir = (isset($p["dir"]))
53                ? $p["dir"]
54                : "classes";
55            include_once("./" . $p["component"] . "/" . $dir . "/class." . $p["class"] . ".php");
56            $providers[] = new $p["class"]();
57        }
58
59        return $providers;
60    }
61}
62