ons ) ? get_option( 'mc_event_link' ) : ''; $display_image = ( $no_old_options ) ? get_option( 'mc_image' ) : ''; $display_reg = ( $no_old_options ) ? get_option( 'mc_event_registration' ) : ''; $image = mc_category_icon( $event ); $image = ( $image ) ? $image . ' ' : ''; $img = ''; $data = array( 'event' => $event, 'process_date' => $process_date, 'time' => $time, 'id' => $id, 'tags' => $tags, ); $close = ''; if ( mc_show_details( $time, $type ) ) { /** * Filter list event heading level. Default 'h3'. * * @hook mc_heading_level_list * * @param {string} $hlevel Default heading level element. * @param {string} $type View type. * @param {string} $time View timeframe. * @param {string} $template Current template. * * @return {string} */ $hlevel = apply_filters( 'mc_heading_level_list', 'h3', $type, $time, $template ); if ( false === $details ) { if ( ( 'true' === $display_address || 'true' === $display_map ) || ( mc_output_is_visible( 'address', $type, $event ) || mc_output_is_visible( 'gmap_link', $type, $event ) ) ) { $show_add = ( 'true' === $display_address || mc_output_is_visible( 'address', $type, $event ) ) ? 'true' : 'false'; $show_map = ( 'true' === $display_map || mc_output_is_visible( 'gmap_link', $type, $event ) ) ? 'true' : 'false'; $address = mc_hcard( $event, $show_add, $show_map ); } $time_html = mc_time_html( $event, $type ); if ( 'list' === $type ) { if ( 'false' === mc_get_option( 'list_link_titles' ) ) { $event_title = mc_draw_event_title( $event, $tags, 'list', $image ); $list_title = " <$hlevel class='event-title summary' id='mc_$event->occur_id-title-$id'>$image" . $event_title . "\n"; } } if ( 'true' === $display_author || mc_output_is_visible( 'author', $type, $event ) ) { $author = mc_template_user_card( $event, 'author' ); } if ( 'true' === $display_host || mc_output_is_visible( 'host', $type, $event ) ) { $host = mc_template_user_card( $event, 'host' ); } $event_title = mc_draw_event_title( $event, $tags, $type, $image ); if ( ( 'true' === $display_more && ! isset( $_GET['mc_id'] ) ) || mc_output_is_visible( 'more', $type, $event ) ) { $details_label = mc_get_details_label( $event, $data ); $permalink = mc_get_permalink( $event ); $aria = ''; // If the event title is already in the details label, omit ARIA. if ( false === stripos( strip_tags( $details_label ), strip_tags( $event_title ) ) ) { $aria = " aria-label='" . esc_attr( "$details_label: " . strip_tags( $event_title ) ) . "'"; } if ( _mc_is_url( $permalink ) ) { $more = "

$details_label

\n"; } else { $more = ''; } } /** * Filter link to event details in grid. * * @hook mc_details_grid_link * * @param {string} $more More link. * @param {object} $event My Calendar event object. * * @return {string} */ $more = apply_filters( 'mc_details_grid_link', $more, $event ); if ( mc_output_is_visible( 'access', $type, $event ) ) { $access_heading = ( '' !== mc_get_option( 'event_accessibility', '' ) ) ? mc_get_option( 'event_accessibility' ) : __( 'Event Accessibility', 'my-calendar' ); $access_content = mc_expand( get_post_meta( $event->event_post, '_mc_event_access', true ) ); $sublevel = 'h4'; if ( 'single' === $type ) { $sublevel = 'h2'; } /** * Filter subheading levels inside event content. * * @hook mc_subheading_level * * @param {string} $el Element name. Default 'h4' in grouped templates, h2 on single templates. * @param {string} $type View type. * @param {string} $time View timeframe. * @param {string} $template Current template. * * @return {string} */ $sublevel = apply_filters( 'mc_subheading_level', $sublevel, $type, $time, $template ); if ( $access_content ) { $access = '
<' . $sublevel . '>' . $access_heading . '' . $access_content . '
'; } } if ( 'true' === $display_gcal || mc_output_is_visible( 'gcal', $type, $event ) ) { $gcal = "

" . mc_draw_template( $data['tags'], '{gcal_link}' ) . '

'; } if ( 'true' === $display_vcal || mc_output_is_visible( 'ical', $type, $event ) ) { $vcal = "

" . mc_draw_template( $data['tags'], '{ical_html}' ) . '

'; } if ( 'true' === $display_image || mc_output_is_visible( 'image', $type, $event ) ) { $img = mc_get_event_image( $event, $data ); } if ( 'calendar' === $type ) { // This is semantically a duplicate of the title, but can be beneficial for sighted users. $uitype = mc_get_option( 'calendar_javascript' ); if ( 'modal' === $uitype ) { $inner_title = ''; } else { $headingtype = ( 'h3' === $hlevel ) ? 'h4' : 'h' . ( ( (int) str_replace( 'h', '', $hlevel ) ) - 1 ); $inner_title = ' <' . $headingtype . ' class="mc-title">' . $event_title . ''; } } if ( 'card' === $type ) { $inner_title = $title; } if ( 'true' === $display_desc || mc_output_is_visible( 'description', $type, $event ) ) { if ( '' !== trim( $event->event_desc ) ) { $description = wpautop( stripcslashes( mc_kses_post( $event->event_desc ) ), 1 ); $description = "
$description
"; } } if ( 'true' === $display_reg || mc_output_is_visible( 'tickets', $type, $event ) ) { $info = wpautop( stripcslashes( mc_kses_post( $event->event_registration ) ) ); $url = esc_url( $event->event_tickets ); $external = ( $url && mc_external_link( $url ) ) ? 'external' : ''; $text = ( '' !== mc_get_option( 'buy_tickets', '' ) ) ? mc_get_option( 'buy_tickets' ) : __( 'Buy Tickets', 'my-calendar' ); $tickets = ( $url ) ? "" . $text . '' : ''; if ( '' !== trim( $info . $tickets ) ) { $tickets = '
' . $info . $tickets . '
'; } else { $tickets = ''; } } if ( 'true' === $display_short || mc_output_is_visible( 'excerpt', $type, $event ) ) { if ( '' !== trim( $event->event_short ) ) { $short = wpautop( stripcslashes( mc_kses_post( $event->event_short ) ), 1 ); $short = "
$short
"; } } /** * Filter registration status of event. Default empty. * * @hook mc_registration_state * * @param {string} $status String. * @param {object} $event My Calendar event object. * * @return {string} */ $status = apply_filters( 'mc_registration_state', '', $event ); /** * Filter URL appended on single event view to return to calendar. * * @hook mc_return_uri * * @param {string} $url Calendar URL. * @param {object} $event My Calendar event object. * * @return {string} */ $return_url = apply_filters( 'mc_return_uri', mc_get_uri( $event ), $event ); $text = ( '' !== mc_get_option( 'view_full', '' ) ) ? mc_get_option( 'view_full' ) : __( 'View full calendar', 'my-calendar' ); $return = ( 'single' === $type ) ? "

" . $text . '

' : ''; if ( ! mc_show_details( $time, $type ) ) { $description = ''; $short = ''; $status = ''; } if ( 'true' === $display_gmap || mc_output_is_visible( 'gmap', $type, $event ) ) { $map = ( is_singular( 'mc-events' ) || 'single' === $type ) ? mc_generate_map( $event ) : ''; } else { $map = ''; } $event_link = mc_event_link( $event ); if ( '' !== $event_link && ( 'true' === $display_link || mc_output_is_visible( 'link', $type, $event ) ) ) { $external_class = ( mc_external_link( $event_link ) ) ? "$type-link external url" : "$type-link url"; $link_template = ( '' !== mc_get_template( 'link' ) ) ? mc_get_template( 'link' ) : __( 'More information', 'my-calendar' ); $link_text = mc_draw_template( $data, $link_template ); $link = "

" . $link_text . '

'; } $access = ( '' !== $access ) ? '
' . $access . '
' : ''; $location = ( '' === trim( $map . $address ) ) ? '' : '
' . $map . $address . '
'; $sharing = ( '' === trim( $vcal . $gcal . $more ) ) ? '' : '
' . $vcal . $gcal . $more . '
'; $close = ( '' !== $close ) ? PHP_EOL . ' ' . $close : ''; $inner_title = ( $inner_title ) ? PHP_EOL . ' ' . $inner_title : ''; $time_html = ( $time_html ) ? PHP_EOL . ' ' . $time_html : ''; $list_title = ( $list_title ) ? PHP_EOL . ' ' . $list_title : ''; $img = ( $img ) ? PHP_EOL . ' ' . $img : ''; $location = ( $location ) ? PHP_EOL . ' ' . $location : ''; $description = ( $description ) ? PHP_EOL . ' ' . $description : ''; $short = ( $short ) ? PHP_EOL . ' ' . $short : ''; $link = ( $link ) ? PHP_EOL . ' ' . $link : ''; $status = ( $status ) ? PHP_EOL . ' ' . $status : ''; $tickets = ( $tickets ) ? PHP_EOL . ' ' . $tickets : ''; $author = ( $author ) ? PHP_EOL . ' ' . $author : ''; $host = ( $host ) ? PHP_EOL . ' ' . $host : ''; $sharing = ( $sharing ) ? PHP_EOL . ' ' . $sharing : ''; $access = ( $access ) ? PHP_EOL . ' ' . $access : ''; $return = ( $return ) ? PHP_EOL . ' ' . $return : ''; $order = array( 'close', 'inner_title', 'list_title', 'time_html', 'img', 'description', 'short', 'location', 'access', 'link', 'status', 'tickets', 'author', 'host', 'sharing', 'return' ); /** * Filter the order in which event template display elements are appended. * * @hook mc_default_output_order * * @param {array} $order Array of ordered keywords representing items in template. * @param {object} $event Event object. * * @return {array} */ $output_order = apply_filters( 'mc_default_output_order', $order, $event ); $details = ''; if ( ! empty( $output_order ) ) { foreach ( $output_order as $value ) { /** * Filter individual display output items. Variable filter name based on `array( 'close', 'inner_title', 'list_title', 'time_html', 'img', 'description', 'short', 'location', 'access', 'link', 'status', 'tickets', 'author', 'host', 'sharing', 'return' );` * * @hook mc_event_detail_{name} * * @param {string} $details HTML content for section. * @param {object} $event My Calendar event object. * * @return {string} */ $details .= apply_filters( 'mc_event_detail_' . sanitize_title( $value ), ${$value}, $event ); } } } /** * Filter event content inside wrapper. * * @hook mc_inner_content * * @param {string} $detail HTML with event data. * @param {object} $event My Calendar event object. * @param {string} $type View type. * @param {string} $time View timeframe. * * @return {string} */ $details = apply_filters( 'mc_inner_content', $details, $event, $type, $time ); /** * Filter details output. * * @hook mc_event_content * * @param {string} $details HTML content. * @param {object} $event My Calendar event object. * @param {string} $type View type. * @param {string} $time View timeframe. * * @return {string} */ $details = apply_filters( 'mc_event_content', $details, $event, $type, $time ); } return $details; } /** * Format upcoming events output. * * @param array $event Array with event object and template tags array. * @param string $template Template key or template structure. * @param string $type Display type. * * @return string */ function mc_format_upcoming_event( $event, $template, $type ) { $details = $event['tags']; $event = $event['event']; $today = current_time( 'Y-m-d' ); $date = mc_date( 'Y-m-d H:i:s', strtotime( $details['dtstart'] ), false ); $classes = mc_get_event_classes( $event, 'upcoming' ); if ( my_calendar_date_equal( $date, $today ) ) { $classes .= ' today'; } if ( '1' === $details['event_span'] ) { $classes .= ' multiday'; } if ( 'list' === $type ) { $prepend = "\n
  • "; $append = "
  • \n"; } else { $prepend = ''; $append = ''; } /** * Opening elements for today's events list items. Default `
  • `. * * @hook mc_event_upcoming_before * * @param {string} $append Template HTML closing tag. * @param {string} $classes Space-separated list of classes for the event. * @param {string} $date Event date in Y-m-d H:i:s format. * * @return {string} HTML following each event in upcoming events lists. */ $prepend = apply_filters( 'mc_event_upcoming_before', $prepend, $classes, $date ); /** * Closing elements for today's events list items. Default `
  • `. * * @hook mc_event_upcoming_after * * @param {string} $append Template HTML closing tag. * @param {string} $classes Space-separated list of classes for the event. * @param {string} $date Event date in Y-m-d H:i:s format. * * @return {string} HTML following each event in upcoming events lists. */ $append = apply_filters( 'mc_event_upcoming_after', $append, $classes, $date ); /** * Draw a custom template for upcoming events. Returning any non-empty string short circuits other template settings. * * @hook mc_draw_upcoming_event * * @param {string} $item Empty string before event template is drawn. * @param {array} $details Associative array of event template tags. * @param {string} $template Template string passed from widget or shortcode. * @param {array} $args Associative array holding the arguments used to generate this list of upcoming events. * * @return {string} Event template details. */ $item = apply_filters( 'mc_draw_upcoming_event', '', $details, $template, $type ); if ( '' === $item ) { $item = mc_draw_template( $details, $template, $type, $event ); } /** * Filter upcoming events list item output. * * @hook mc_event_upcoming * * @param {string} $item List item HTML for upcoming event. * @param {object} $event Event object. * * @return {array} Array of event listing arguments. */ $output = apply_filters( 'mc_event_upcoming', $prepend . $item . $append, $event ); return $output; }
    Fatal error: Uncaught Error: Class "iThemesSecurity\Modules\Strong_Passwords\Strength_Requirement" not found in /htdocs/wp-content/plugins/better-wp-security/core/modules/strong-passwords/container.php:16 Stack trace: #0 /htdocs/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php(125): ITSEC_Modules::iThemesSecurity\Modules\Strong_Passwords\{closure}(Object(iThemesSecurity\Strauss\Pimple\Container)) #1 /htdocs/wp-content/plugins/better-wp-security/core/modules/strong-passwords/container.php(20): iThemesSecurity\Strauss\Pimple\Container->offsetGet('iThemesSecurity...') #2 /htdocs/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Container.php(125): ITSEC_Modules::iThemesSecurity\Modules\Strong_Passwords\{closure}(Object(iThemesSecurity\Strauss\Pimple\Container)) #3 /htdocs/wp-content/plugins/better-wp-security/vendor-prod/pimple/pimple/src/Pimple/Psr11/Container.php(51): iThemesSecurity\Strauss\Pimple\Container->offsetGet('ITSEC_Strong_Pa...') #4 /htdocs/wp-content/plugins/better-wp-security/core/modules.php(1176): iThemesSecurity\Strauss\Pimple\Psr11\Container->get('ITSEC_Strong_Pa...') #5 /htdocs/wp-content/plugins/better-wp-security/core/modules.php(779): ITSEC_Modules->run('ITSEC_Strong_Pa...') #6 /htdocs/wp-content/plugins/better-wp-security/core/modules.php(867): ITSEC_Modules::load_module_file('active.php', Array) #7 /htdocs/wp-content/plugins/better-wp-security/core/core.php(182): ITSEC_Modules::run_active_modules() #8 /htdocs/wp-content/plugins/better-wp-security/core/core.php(233): ITSEC_Core->shared_init() #9 /htdocs/wp-includes/class-wp-hook.php(324): ITSEC_Core->continue_init('') #10 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #11 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #12 /htdocs/wp-settings.php(555): do_action('plugins_loaded') #13 /htdocs/wp-config.php(80): require_once('/htdocs/wp-sett...') #14 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #15 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #16 /htdocs/index.php(17): require('/htdocs/wp-blog...') #17 {main} thrown in /htdocs/wp-content/plugins/better-wp-security/core/modules/strong-passwords/container.php on line 16