Back to ApplicationHelper class

Method getClientInfo

public static \stdClass|array|void
getClientInfo
(mixed $id = null, mixed $byName = false)
Gets information on a specific client id. This method will be useful in future versions when we start mapping applications in the database.
Parameters
  • int|string|null $id A client identifier
  • bool $byName If true, find the client by its name
Returns
  • \stdClass|array|void Object describing the client, array containing all the clients or void if $id not known
Since
  • 1.5

Method getClientInfo - Source code

/**
 * Gets information on a specific client id.  This method will be useful in
 * future versions when we start mapping applications in the database.
 *
 * This method will return a client information array if called
 * with no arguments which can be used to add custom application information.
 *
 * @param   integer|string|null   $id      A client identifier
 * @param   boolean               $byName  If true, find the client by its name
 *
 * @return  \stdClass|array|void  Object describing the client, array containing all the clients or void if $id not known
 *
 * @since   1.5
 */
public static function getClientInfo($id = null, $byName = false)
{
    // Only create the array if it is empty
    if (empty(self::$_clients)) {
        $obj = new \stdClass();
        // Site Client
        $obj->id = 0;
        $obj->name = 'site';
        $obj->path = JPATH_SITE;
        self::$_clients[0] = clone $obj;
        // Administrator Client
        $obj->id = 1;
        $obj->name = 'administrator';
        $obj->path = JPATH_ADMINISTRATOR;
        self::$_clients[1] = clone $obj;
        // Installation Client
        $obj->id = 2;
        $obj->name = 'installation';
        $obj->path = JPATH_INSTALLATION;
        self::$_clients[2] = clone $obj;
        // API Client
        $obj->id = 3;
        $obj->name = 'api';
        $obj->path = JPATH_API;
        self::$_clients[3] = clone $obj;
        // CLI Client
        $obj->id = 4;
        $obj->name = 'cli';
        $obj->path = JPATH_CLI;
        self::$_clients[4] = clone $obj;
    }
    // If no client id has been passed return the whole array
    if ($id === null) {
        return self::$_clients;
    }
    // Are we looking for client information by id or by name?
    if (!$byName) {
        if (isset(self::$_clients[$id])) {
            return self::$_clients[$id];
        }
    } else {
        foreach (self::$_clients as $client) {
            if ($client->name == strtolower($id)) {
                return $client;
            }
        }
    }
}