    function comments_list($params)
    {

        if (!user_can_access('module.comments.index')) {
            return;
        }

        if (!isset($params['content_id'])) {

            if (isset($params['rel_id']) and isset($params['rel_type'])) {
                $data = array(
                    'rel_id' => $params['rel_id'],
                    'rel_type' => $params['rel_type'],

                );
            }


        } else {
            $data = array(
                'content_id' => $params['content_id']
            );

        }


        if (isset($params['search-keyword']) and $params['search-keyword']) {
            $kw = $data['keyword'] = $params['search-keyword'];
            $data['search_in_fields'] = 'comment_name,comment_body,comment_email,comment_website,from_url,comment_subject';
        }

        $data['order_by'] = 'created_at desc';

        $comments = $postComments = get_comments($data);
        if (isset($params['content_id'])) {
            $content = get_content_by_id($params['content_id']);
            $content_id = $params['content_id'];
        } else {
            $content = false;
            $content_id = false;
        }

        $moderation_is_required = get_option('require_moderation', 'comments') == 'y';

        $view_file = $this->views_dir . 'comments_list.php';
        $view = new View($view_file);
        $view->assign('params', $params);
        $view->assign('comments', $comments);
        $view->assign('content_id', $content_id);
        $view->assign('content', $content);
        $view->assign('moderation_is_required', $moderation_is_required);

        return $view->display();
    }
The software constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.