Parsed: 109321

  public function single_row( $theme ) {
    global $status, $totals;

    if ( $this->is_site_themes ) {
      $allowed = $theme->is_allowed( 'site', $this->site_id );
    } else {
      $allowed = $theme->is_allowed( 'network' );
    }

    $stylesheet = $theme->get_stylesheet();

    $class = ! $allowed ? 'inactive' : 'active';
    if ( ! empty( $totals['upgrade'] ) && ! empty( $theme->update ) ) {
      $class .= ' update';
    }

    printf(
      '<tr class="%s" data-slug="%s">',
      esc_attr( $class ),
      esc_attr( $stylesheet )
    );

    $this->WP_MS_Themes_List_Table::single_row_columns( $theme );

    echo '</tr>';

    if ( $this->is_site_themes ) {
      remove_action( "after_theme_row_$stylesheet", 'wp_theme_update_row' );
    }

    
/**
 * Fires after each row in the Multisite themes list table.
 *
 * @since 3.1.0
 *
 * @param string   $stylesheet Directory name of the theme.
 * @param WP_Theme $theme      Current WP_Theme object.
 * @param string   $status     Status of the theme.
 */
    do_action( 'after_theme_row', $stylesheet, $theme, $status );

    
/**
 * Fires after each specific row in the Multisite themes list table.
 *
 * The dynamic portion of the hook name, `$stylesheet`, refers to the
 * directory name of the theme, most often synonymous with the template
 * name of the theme.
 *
 * @since 3.5.0
 *
 * @param string   $stylesheet Directory name of the theme.
 * @param WP_Theme $theme      Current WP_Theme object.
 * @param string   $status     Status of the theme.
 */
    do_action( "after_theme_row_{$stylesheet}", $stylesheet, $theme, $status );
  }