Moosh\Command\Moodle23\Forum\ForumNewdiscussion::execute PHP Method

execute() public method

Adds a new discussion to the specified forum.
public execute ( ) : the
return the discussion id
    public function execute()
    {
        // Forum functions needed.
        global $CFG;
        require_once $CFG->dirroot . '/mod/forum/lib.php';
        // Getting moodle's data generator.
        $generator = get_data_generator();
        // Compulsory and optional attrs.
        $discussiondata = new \stdClass();
        $discussiondata->course = $this->arguments[0];
        $discussiondata->forum = $this->arguments[1];
        $discussiondata->userid = $this->arguments[2];
        foreach ($this->discussionoptions as $key => $values) {
            if (!empty($this->expandedOptions[$key])) {
                $discussiondata->{$key} = $this->expandedOptions[$key];
            }
        }
        $discussiondata->name = $discussiondata->subject;
        $forumgenerator = $generator->get_plugin_generator('mod_forum');
        $record = $forumgenerator->create_discussion($discussiondata);
        if ($this->verbose) {
            echo "Discussion {$record->name} successfully added\n";
        }
        echo "{$record->id}\n";
    }
ForumNewdiscussion