WPF_ADDEDTOPIC::define_trigger()

Define and register the trigger by pushing it into the Automator object


Source Source

File: src/integrations/wpforo/triggers/wpf-addedtopic.php

	public function define_trigger() {



		$forums = WPF()->forum->get_forums( [ 'type' => 'forum' ] );

		$forum_options = [ 0 => 'Any Forum' ];
		foreach ( $forums as $forum ) {
			$forum_options[ $forum['forumid'] ] = $forum['title'];
		}

		$forum_relevant_tokens = [
			'WPFORO_FORUM'         => __( 'Forum title', 'uncanny-automator' ),
			'WPFORO_FORUM_ID'      => __( 'Forum ID', 'uncanny-automator' ),
			'WPFORO_FORUM_URL'     => __( 'Forum URL', 'uncanny-automator' ),
			'WPFORO_TOPIC'         => __( 'Topic title', 'uncanny-automator' ),
			'WPFORO_TOPIC_ID'      => __( 'Topic ID', 'uncanny-automator' ),
			'WPFORO_TOPIC_URL'     => __( 'Topic URL', 'uncanny-automator' ),
			'WPFORO_TOPIC_CONTENT' => __( 'Topic content', 'uncanny-automator' ),
		];

		$trigger = array(
			'author'              => Automator()->get_author_name( $this->trigger_code ),
			'support_link'        => Automator()->get_author_support_link( $this->trigger_code, 'integration/wpforo/' ),
			'integration'         => self::$integration,
			'code'                => $this->trigger_code,
			/* translators: Logged-in trigger - wpForo */
			'sentence'            => sprintf( esc_attr__( 'A user creates a topic in {{a forum:%1$s}} {{a number of:%2$s}} time(s)', 'uncanny-automator' ), $this->trigger_meta, 'NUMTIMES' ),
			/* translators: Logged-in trigger - wpForo */
			'select_option_name'  => esc_attr__( 'A user creates a {{new topic}}', 'uncanny-automator' ),
			'action'              => 'wpforo_after_add_topic',
			'priority'            => 5,
			'accepted_args'       => 1,
			'validation_function' => array( $this, 'added_topic' ),
			'options'             => [
				Automator()->helpers->recipe->field->select_field_args( [
					'option_code'     => $this->trigger_meta,
					'options'         => $forum_options,
					'label'           => esc_attr__( 'Forums', 'uncanny-automator' ),
					'required'        => true,
					'token_name'      => 'Forum ID',
					'relevant_tokens' => $forum_relevant_tokens,
				] ),
				Automator()->helpers->recipe->options->number_of_times(),
			],
		);

		Automator()->register->trigger( $trigger );

		return;
	}