LLMS_Twenty_Twenty_Two
Theme Support: Twenty Twenty-Two.
Contents
Source Source
File: includes/theme-support/class-llms-twenty-twenty-two.php
class LLMS_Twenty_Twenty_Two { /** * Static "constructor". * * @since 5.8.0 * * @return void */ public static function init() { // This theme doesn't have a sidebar. remove_action( 'lifterlms_sidebar', 'lifterlms_get_sidebar', 10 ); // Handle content wrappers. remove_action( 'lifterlms_before_main_content', 'lifterlms_output_content_wrapper', 10 ); remove_action( 'lifterlms_after_main_content', 'lifterlms_output_content_wrapper_end', 10 ); add_action( 'lifterlms_before_main_content', array( __CLASS__, 'handle_page_header_wrappers' ) ); // Modify catalog & checkout columns when the catalog page isn't full width. add_filter( 'lifterlms_loop_columns', array( __CLASS__, 'modify_columns_count' ) ); add_filter( 'llms_checkout_columns', array( __CLASS__, 'modify_columns_count' ) ); // Use theme colors for various LifterLMS elements. add_action( 'wp_enqueue_scripts', array( __CLASS__, 'add_inline_styles' ) ); add_action( 'enqueue_block_editor_assets', array( __CLASS__, 'add_inline_editor_styles' ) ); } /** * Enqueue inline styles for the block editor. * * @since 5.8.0 * * @return void */ public static function add_inline_editor_styles() { wp_add_inline_style( 'llms-blocks-editor', self::generate_inline_styles( 'editor' ) ); } /** * Enqueue inline styles on the frontend. * * @since 5.8.0 * * @return void */ public static function add_inline_styles() { wp_add_inline_style( 'twentytwentytwo-style', self::generate_inline_styles() ); } /** * Generate inline CSS for a given context. * * @since 5.8.0 * @since 5.9.0 Fixed stretched images in questions with pictures, and images in quiz/questions description. * @since 6.8.0 Fixed label/text alignment by removing text’s margin top. Also, removed now outdated width rule. * * @param string|null $context Inline CSS context. Accepts "editor" to define styles loaded within the block editor or `null` for frontend styles. * @return string */ protected static function generate_inline_styles( $context = null ) { $selector_prefix = ( 'editor' === $context ) ? '.editor-styles-wrapper' : ''; $styles = array(); // Frontend only. if ( is_null( $context ) ) { // Fix alignment of content in an access plan, and navigation. $styles[] = '.llms-access-plan-description ul, .llms-pagination ul { padding-left: 0; }'; // Fix form input padding. $styles[] = '.llms-form-field input, .llms-form-field textarea, .llms-form-field select { padding: 6px 10px }'; // Question layout. $styles[] = '.llms-question-wrapper ol.llms-question-choices li.llms-choice .llms-choice-text { margin-top: 0; }'; // Payment gateway stylized radio buttons. $styles[] = LLMS_Theme_Support::get_css( array( '.llms-form-field.type-radio:not(.is-group) input[type=radio]:checked+label:before' ), array( 'background-image' => '-webkit-radial-gradient(center,ellipse,var(--wp--preset--color--primary) 0,var(--wp--preset--color--primary) 40%,#fafafa 45%)', 'background-image' => 'radial-gradient(ellipse at center,var(--wp--preset--color--primary) 0,var(--wp--preset--color--primary) 40%,#fafafa 45%)', ) ); // Completed lesson check. $styles[] = LLMS_Theme_Support::get_css( array( '.llms-lesson-preview.is-free .llms-lesson-complete', '.llms-lesson-preview.is-complete .llms-lesson-complete', ), array( 'color' => 'var(--wp--preset--color--primary)', ) ); } // Editor only. if ( 'editor' === $context ) { // Elements with a light background that become unreadable in darkmode in the block editor. $styles[] = LLMS_Theme_Support::get_css( array( '.wp-block-llms-course-progress .progress-bar .progress--fill', '.wp-block[data-type="llms/course-continue-button"] button', '.wp-block[data-type="llms/lesson-progression"] button', ), array( 'background-color' => 'var(--wp--preset--color--primary)', 'color' => 'var(--wp--preset--color--background)', ), $selector_prefix ); } // Fix lesson preview titles. $styles[] = '.llms-lesson-preview h6 { margin: 0 0 10px; }'; // Primary background color. $styles[] = LLMS_Theme_Support::get_css( LLMS_Theme_Support::get_selectors_primary_color_background(), array( 'background-color' => 'var(--wp--preset--color--primary)', 'color' => 'var(--wp--preset--color--background)', ) ); // Add border color to qualifying elements. $styles[] = LLMS_Theme_Support::get_css( LLMS_Theme_Support::get_selectors_primary_color_border(), array( 'border-color' => 'var(--wp--preset--color--primary)', ) ); // Quiz. $styles[] = '.llms-quiz-ui { background: transparent; }'; // Fix questions with pictures, and images in quiz/questions description. $styles[] = '.llms-quiz-wrapper img, .llms-quiz-question-wrapper img { max-width: 100%; height: auto; }'; // Fix anchor buttons. $styles[] = 'a.llms-button-action, a.llms-button-danger, a.llms-button-primary, a.llms-button-secondary { display: inline-block; }'; return implode( "\r", $styles ); } /** * Handle wrapping the catalog page header in 2022 theme elements. * * This method determines if the catalog title are to be displayed and adds additional actions * which will wrap the elements in 2022 theme elements depending on what is meant to be displayed. * * @since 5.8.0 * * @return void */ public static function handle_page_header_wrappers() { /** This filter is documented in templates/loop.php */ $show_title = apply_filters( 'lifterlms_show_page_title', true ); if ( $show_title ) { add_action( 'lifterlms_before_main_content', array( __CLASS__, 'page_header_wrap' ), 11 ); add_action( 'lifterlms_archive_description', array( __CLASS__, 'page_header_wrap_end' ), 99999999 ); } if ( $show_title && ! empty( lifterlms_get_archive_description() ) ) { add_action( 'lifterlms_archive_description', array( __CLASS__, 'output_archive_description_wrapper' ), -1 ); add_action( 'lifterlms_archive_description', array( __CLASS__, 'output_archive_description_wrapper_end' ), 99999998 ); } } /** * Modify the number of catalog & checkout columns. * * @since 5.8.0 * * @param int $cols Number of columns. * @return int */ public static function modify_columns_count( $cols ) { return 1; } /** * Output the catalog archive description 2022 theme wrapper opener. * * @since 5.8.0 * * @return void */ public static function output_archive_description_wrapper() { echo '<div class="archive-description">'; } /** * Output the catalog archive description 2022 theme wrapper closer. * * @since 5.8.0 * * @return void */ public static function output_archive_description_wrapper_end() { echo '</div><!-- .archive-description -->'; } /** * Output the catalog page header 2022 theme wrapper opener. * * @since 5.8.0 * * @return void */ public static function page_header_wrap() { echo '<header class="page-header alignwide">'; } /** * Output the catalog page header 2022 theme wrapper closer. * * @since 5.8.0 * * @return void */ public static function page_header_wrap_end() { echo '</header><!-- .page-header -->'; } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- add_inline_editor_styles — Enqueue inline styles for the block editor.
- add_inline_styles — Enqueue inline styles on the frontend.
- generate_inline_styles — Generate inline CSS for a given context.
- handle_page_header_wrappers — Handle wrapping the catalog page header in 2022 theme elements.
- init — Static "constructor".
- modify_columns_count — Modify the number of catalog & checkout columns.
- output_archive_description_wrapper — Output the catalog archive description 2022 theme wrapper opener.
- output_archive_description_wrapper_end — Output the catalog archive description 2022 theme wrapper closer.
- page_header_wrap — Output the catalog page header 2022 theme wrapper opener.
- page_header_wrap_end — Output the catalog page header 2022 theme wrapper closer.
Changelog Changelog
Version | Description |
---|---|
5.8.0 | Introduced. |