public function get_compose_responses($sorted = false, $user_only = false)
    {
        $responses = array();

        if (!$user_only) {
            foreach ($this->config->get('compose_responses_static', array()) as $response) {
                if (empty($response['key'])) {
                    $response['key'] = substr(md5($response['name']), 0, 16);
                }

                $response['static'] = true;
                $response['class']  = 'readonly';

                $k = $sorted ? '0000-' . mb_strtolower($response['name']) : $response['key'];
                $responses[$k] = $response;
            }
        }

        foreach ($this->config->get('compose_responses', array()) as $response) {
            if (empty($response['key'])) {
                $response['key'] = substr(md5($response['name']), 0, 16);
            }

            $k = $sorted ? mb_strtolower($response['name']) : $response['key'];
            $responses[$k] = $response;
        }

        // sort list by name
        if ($sorted) {
            ksort($responses, SORT_LOCALE_STRING);
        }

        $responses = array_values($responses);

        $hook = $this->plugins->exec_hook('get_compose_responses', array(
            'list'      => $responses,
            'sorted'    => $sorted,
            'user_only' => $user_only,
        ));

        return $hook['list'];
    }