settings = $settings; } /** * @since 1.0.0 * * @return array> */ public function get_hooks(): array { return array( array( 'postlinkly_render_settings_tab_general', array( $this, 'render_general' ) ), array( 'postlinkly_render_settings_tab_suggestion', array( $this, 'render_suggestion' ) ), array( 'postlinkly_render_settings_tab_advanced', array( $this, 'render_advanced' ) ), ); } // ----------------------------------------------------------------------- // Tab: General // ----------------------------------------------------------------------- /** * Renders the General settings tab. * * @since 1.0.0 * @hook postlinkly_render_settings_tab_general * * @return void */ public function render_general(): void { $s = $this->settings->general(); $post_types = $this->get_public_post_types(); $all_statuses = array( 'publish' => __( 'Published', 'postlinkly' ), 'draft' => __( 'Draft', 'postlinkly' ), 'private' => __( 'Private', 'postlinkly' ), 'pending' => __( 'Pending Review', 'postlinkly' ), 'future' => __( 'Scheduled', 'postlinkly' ), ); $languages = $this->get_supported_languages(); ?> settings->suggestion(); ?> settings->advanced(); ?> label pairs. * * @since 1.0.0 * * @return array */ private function get_public_post_types(): array { $types = get_post_types( array( 'public' => true ), 'objects' ); $out = array(); foreach ( $types as $slug => $obj ) { $out[ $slug ] = $obj->labels->singular_name ?? $slug; } return $out; } /** * Returns supported stemmer languages as code => label pairs. * * @since 1.0.0 * * @return array */ private function get_supported_languages(): array { return array( 'ca' => __( 'Catalan', 'postlinkly' ), 'da' => __( 'Danish', 'postlinkly' ), 'de' => __( 'German', 'postlinkly' ), 'en' => __( 'English', 'postlinkly' ), 'es' => __( 'Spanish', 'postlinkly' ), 'fi' => __( 'Finnish', 'postlinkly' ), 'fr' => __( 'French', 'postlinkly' ), 'it' => __( 'Italian', 'postlinkly' ), 'nl' => __( 'Dutch', 'postlinkly' ), 'no' => __( 'Norwegian', 'postlinkly' ), 'pt' => __( 'Portuguese', 'postlinkly' ), 'ro' => __( 'Romanian', 'postlinkly' ), 'ru' => __( 'Russian', 'postlinkly' ), 'sv' => __( 'Swedish', 'postlinkly' ), ); } }